[Bug] Unable to remove subscription

What did I do
Created an invalid aws subscription
What happened
Broker continually disconnects.  Unable to delete or disable subscription.
Expected
Should be able to delete / disable an invalid subscription regardless of connection status.
Environment

Windows 11
MQTTX version, e.g. v1.9.6

More detail

Hi @jechiasson,
Sorry for the delay. For subscriptions, operations are possible only when connected to the MQTT broker. If facing disconnections, try restarting and then connect again to delete or disable the subscription.

broker disconnect if try to subscribe to un-auth topic. So infinitive loop!

Hi @jechiasson,
Sorry for the delay. For subscriptions, operations are possible only when connected to the MQTT broker. If facing disconnections, try restarting and then connect again to delete or disable the subscription.

@04116 Hello,
Could you please provide steps to reproduce the issue with unauthorized topic subscriptions causing disconnection and looping? We've noted other reconnection loop issues; any more details would be helpful.
Thanks for your feedback!

I'll try.  I think it happened when I subscribed to $aws/# which is a
reserved system topic.  It disconnected almost immediately, which prevented
editing or disabling the subscription.  I think the fix is allow editing or
disabling / deleting even when disconnected.
On Fri, Oct 6, 2023, 22:07 YuShifan @.***> wrote:

@04116 https://github.com/04116 Hello,
Could you please provide steps to reproduce the issue with unauthorized
topic subscriptions causing disconnection and looping? We've noted other
reconnection loop issues; any more details would be helpful.
Thanks for your feedback!
—
Reply to this email directly, view it on GitHub
https://github.com/emqx/MQTTX/issues/1427#issuecomment-1751579222, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AHR3E4QNBRQDXRZ4EDYWF2LX6DBPJAVCNFSM6AAAAAA5CA27O2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJRGU3TSMRSGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

@ysfscream my issue, I think exactly like @jechiasson
Server force disconnects the client quicker than I move the mouse and then click to remove the subscription

I have exactly the same problem. The only solution is to duplicate the whole Connection setup all subscribed topics again...


Cannot test for multiple values in multi-position-expression

I can do a query like
[A="value" & B="value]

However, it is not possible to do a query
<A="value" & B="value/>

It seems like this is an unnecessary restriction.

You can do
<A="value"/> within <B="value"/>
or
<A="value"/> containing <B="value"/>
or even
(<A="value"/> containing <B="value"/>) within <B="value"/>
With <A="value" & B="value"/> I'm not sure it is clear which of these options is required, therefore for now we choose to not support it.

In my view, the semantics of <A="value" & B="value/> would be correspond to <A="value"/> fullyalignedwith <B="value"/>.
Although, to be honest, I would actually have an additional expectation and that entails a different question yet: https://github.com/meertensinstituut/mtas/issues/15

I think you're right and have put it on my to-do list for a new release.

@matthijsbrouwer would you mind keeping this issue open until it is actually resolved? That would help me react (e.g. update our dependencies) when it is done.


[HIP] Introduce library_types.h as a common header for libs

[Reason]
Currently, hipFFT, hipBLAS and other HIP libs use their own data types, prefixed with HIPFFT or HIPBLAS, whereas in CUDA those types are common and declared in library_types.h
[TODO]
Switch hipFFT, hipBLAS and other HIP libs to use common library_types.h.

ping

ping


Cross-namespace Route binding is mismatching of traefik 2.4.9 from traefik-helm-chart

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What version of the Traefik's Helm Chart are you using?
10.1.1
What version of Traefik are you using?
2.4.9
What did you do?
helm install application from traefik gateway api Under the different namespace
What did you see instead?
must choose the same namespace between traefik and httproute,Otherwise, no route will be matched
What is your environment & configuration?
the traefik helm chart github is: "https://github.com/traefik/traefik-helm-chart"
the traefik version is : 2.4.9
the gateway-api version is : v0.3.0
and traefik is under namespace: kube-system
the gatewayclass yaml is :
➜  templates git:(master) cat gatewayclass.yaml
{{- if .Values.experimental.kubernetesGateway.enabled }}
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
metadata:
  name: traefik
spec:
  controller: traefik.io/gateway-controller
{{- end }}

and the gateway yaml is below:
➜  templates git:(master) cat gateway.yaml
{{- if .Values.experimental.kubernetesGateway.enabled }}
---
apiVersion: networking.x-k8s.io/v1alpha1
kind: Gateway
metadata:
  name: traefik-gateway
  namespace: {{ default .Release.Namespace .Values.experimental.kubernetesGateway.namespace }}
spec:
  gatewayClassName: traefik
  listeners:
    - port: {{ .Values.ports.web.port }}
      protocol: HTTP
      routes:
        kind: HTTPRoute
        namespaces:
          from: All
        #selector:
        #  matchLabels:
        #    app: {{ .Values.experimental.kubernetesGateway.appLabelSelector }}

    {{- range $index, $cert:= .Values.experimental.kubernetesGateway.certificates }}
    - port: {{ $.Values.ports.websecure.port }}
      protocol: HTTPS
      tls:
        certificateRef:
          name: {{ $cert.name }}
          group: {{ $cert.group }}
          kind: {{ $cert.kind }}
      routes:
        kind: HTTPRoute
        namespaces:
          from: All
        #selector:
        #  matchLabels:
        #    app: {{ $.Values.experimental.kubernetesGateway.appLabelSelector }}
    {{- end }}
{{- end }}

➜  traefik_new git:(master) helm install traefik-test --namespace kube-system -f values_diymaster.yaml --debug .

the application app httproute is under the namespace: martin
and the name is app, corresponding httproute yaml is below:
➜  templates git:(master) cat httproute.yaml
{{- if .Values.httproute.enabled -}}
{{- $fullName := include "app.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
apiVersion: networking.x-k8s.io/v1alpha1
kind: HTTPRoute
metadata:
  name: {{ template "app.fullname" . }}-httproute
  namespace: {{ default .Release.Namespace .Values.httproute.namespace }}
  #labels:
  #  app: {{ .Values.httproute.appLabelSelector }}
spec:
  gateways:
    allow: All
    #allow: FromList
    #gatewayRefs:
    #- name: {{ .Values.httproute.gateway_name }}
    #  namespace: {{ .Values.httproute.gateway_namespace }}
  hostnames:
  - {{ .Values.httproute.hostnames }}
  rules:
  - matches:
    - path:
        #type: Exact
        type: Prefix
        value: /
    forwardTo:
    - serviceName: {{ $fullName }}
      port: {{ $svcPort }}
      weight: 1
{{- end }}

the values.yaml is below:
...
httproute:
  enabled: true
  hostnames: martin-test.century.com
  namespace: martin
  gateway_name: traefik-gateway
  gateway_namespace: kube-system
  #namespace: kube-system
  appLabelSelector: traefik
...

➜  martin git:(master) helm install martin-test --namespace martin -f values_test.yaml --debug .
the Component status is ok:
➜  traefik_new git:(master) kubectl get gatewayclasses.networking.x-k8s.io --all-namespaces
NAME      CONTROLLER                      AGE
traefik   traefik.io/gateway-controller   35m
➜  traefik_new git:(master) kubectl get gateways.networking.x-k8s.io --all-namespaces
NAMESPACE     NAME              CLASS     AGE
kube-system   traefik-gateway   traefik   36m
➜  traefik_new git:(master) kubectl get httproutes.networking.x-k8s.io --all-namespaces -o wide
NAMESPACE          NAME                                 HOSTNAMES                       AGE
martin   martin-test-httproute   [martin-test.century.com]   41m
➜  traefik_new git:(master)

from the dashboard i can see the KubernetesGateway Providers is On, but the martin-httproute created by me is just invisible

the traefik error logs is :

and when i access the url, it return the 404 Error,so i can realize the route will not be matched.
But when i changed the httproute namespace to kube-system that is the same of traefik，i found it ok.
➜  martin git:(master) helm install martin-test --namespace martin -f values_test.yaml --debug .
➜  martin git:(master) kubectl get httproutes.networking.x-k8s.io --all-namespaces -o wide
NAMESPACE     NAME                                 HOSTNAMES                       AGE
kube-system   martin-test-httproute   [martin-test.century.com]   107s

so Whether the gatewayapi does not support cross-namespace? could you help me to solve the problem, thanks very much.
Additional Information
No response

according to the office doc of gateway-api, i need to add "namespaces: from: All"
The below Gateway will select all HTTPRoute resources with the expose: prod-web-gw across all Namespaces in the cluster.
kind: Gateway
...
spec:
  listeners:
  - routes:
      kind: HTTPRoute
      selector:
        matchLabels:
          expose: prod-web-gw
      namespaces:
        from: All

But I tried it and it didn't work, so anyone can help me? thanks

Seconding that indeed. The cross namespace Gateway and HTTPRule seems that it doesn't work/implemented. I was following the cross namespace guide from the official website.
For me a workaround - until this becomes generally available - is to deploy the gateway as well in the target namespace. Then since the hostname is not yet supported (apparently) on the gateway resource, setting the hostnames prop on the HTTPRoute.

Hello @hannius,
Thanks for your report.
I don't see what we can do on this helm chart to help you, so I close it.
Feel free to re-open it if you have a clear view on what this chart can do to help on this issue.


Close sidebar when going to concierge chat

Fixed Issues
$ https://github.com/Expensify/Expensify/issues/180850
Tests / QA Steps

Have a bank account added to your account and a workspace created
Go to Settings > Workspace > Book travel
Click on the link to book travel with Concierge
Verify that you are taken to the concierge chat and the sidebar closes

Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots
n/a
Web
n/a
Mobile Web
n/a
Desktop
n/a
iOS
n/a
Android
n/a

Updated

@parasharrajat I like that you're refactoring this behavior out into a CustomAction. Considering that this is a time-sensitive fix, could we merge this PR and then have you pull master on yours? That way we can have this quick fix done, and then give you the credit for abstracting this into more reusable behavior. Thoughts @tgolen?

🚀 Deployed to staging by @Luke9389 in version: 1.1.7-25 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @roryabraham in version: 1.1.8-9 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Problems when installing in laravel 5: no migration found

While following the installation step, on the moment to migrate the database, the migration was not found, vendor:publish did not created it.
¿How can we proceed?

After some nagging in the internet, some  problems with my own composer and so on, i finally got the migration to roll...except, a new problem has arised:
[Illuminate\Database\QueryException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'tracker_agents' already exists (SQL: create table    tracker_agents (id bigint unsigned not null auto_increment primary key, name varchar(191) not null, browser
varchar(191) not null, browser_version varchar(191) not null, created_at timestamp not null, updated_at times
tamp not null) default character set utf8mb4 collate utf8mb4_unicode_ci) (SQL: SQLSTATE[42S01]: Base table or view
already exists: 1050 Table 'tracker_agents' already exists (SQL: create table tracker_agents (id bigint unsigne
d not null auto_increment primary key, name varchar(191) not null, browser varchar(191) not null, browser_vers   ion varchar(191) not null, created_at timestamp not null, updated_at timestamp not null) default character set
utf8mb4 collate utf8mb4_unicode_ci))
[Illuminate\Database\QueryException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'tracker_agents' already exists (SQL: create table    tracker_agents (id bigint unsigned not null auto_increment primary key, name varchar(191) not null, browser
varchar(191) not null, browser_version varchar(191) not null, created_at timestamp not null, updated_at times
tamp not null) default character set utf8mb4 collate utf8mb4_unicode_ci)
[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'tracker_agents' already exists
[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'tracker_agents' already exists
¿Some clues?

The error said Table tracker_agents already exist, you need to delete that Table and Remove row in Table migration that run tracker_agents migration


How to use with domoticz docker image

Hi!
The apt packages are not all available inside the official domoticz docker image.
Following the installation steps will work for the running container, but whenever it gets recreated, it'll be all gone.
So how could I use this with the docker image? I'm afraid that I'll have to create my own image based on the official image, or are there other ways?

Hi @kipusoep.
I have played with domoticz and docker recently and found that both plugin and wideq_state.json file have to be under /userdata folder. Since that folder is a docker volume this will keep them safe while container re-creations. Also I've made changes (392f5c1550d68c7887fa2d94bf5df958592714f9) to the code to have state file in the plugin folder - no more moving after generation! 😄

Works now :-)


Implement pipeline.merge

Resolves #7

@MatthewChau99 the arguments to the pandas.DataFrame version were incorrect. Good catch.


support errors logged without an exception

Add support for:
#!c#
_log.Error("an error happened without an exception");

Bitbucket: https://bitbucket.org/plmw/log4net.raygun/issue/1
Originally reported by: Anonymous
Originally created at: 2014-09-08T22:08:17.616

Initial support added to v2.1. Will use the LoggingEvent.RenderedMessage as the error message of the RaygunMessage, and use the LoggingEvent.LocationInformation.ClassName as the class. All other Exception related fields (stacktrace etc.) are left blank in the message.

Original comment by: Phillip Wong


[Bug]:  Geographic Area: County name "De Kalb" is misspelled.

Steps to reproduce the bug
1. For county name "DeKalb" (correct spelling) in AL, IL, IN, MO- When searching in Geographic Area, it is misspelled with a space in between: "De Kalb"

2. This makes it confusing when assigning geographic areas and extra steps are needed to find the exact area in the database.

Screenshot

Expected behavior
No response
Additional Screenshots
No response
Environment
Production
Sandbox Used
No response
Version
v0.34.4
Browser Used
Chrome

Confirmed that this is true according to US Gov.
@LocoDelAssembly proposed update:
Current.user_id = 1

q = GeographicArea.where(name: 'De Kalb')

q.each do |g|
  g.update(name: 'DeKalb')

  g.collecting_events.each do |c|
    c.save!
  end
end


ICQ helpers for Cosmos SDK 0.47

This PR adds helpers and types for ICQ compatible with Cosmos SDK v0.47 chains.
Related PRs:

https://github.com/neutron-org/neutron-dev-contracts/pull/42
https://github.com/neutron-org/neutron/pull/446

https://github.com/neutron-org/neutron-tests/actions/runs/8281395159


Heroic headers: Update hero and header links

Handful of things here:

Prettier arrives! But hasn't been slapped on everything yet.
The home page's hero area is now focused on minting 🎊
The home page's hero image is now CMS-customizable.
Header links gain a Discord link :rocket:
The fork link now shows “Fork” on hover on desktop.
Both Discord and Fork links now show their text on mobile.
As a bonus, GitHub Actions now posts a comment with the preview URL when a preview lands.

Closes #333, closes #334 .

Please give this a fair shake on Chrome and especially Chrome mobile. I only checked it on Safari and Firefox :grimacing:

… I added a few more small fixes because they've been driving me crazy :grimacing:


Suggestion: replace "provenance" in the /licenses page

It would be better to use a word more people are used to (or can guess the meaning of), like "origin" or "authorship".

Authorship is too narrow. I really like provenance because it captures documentation of both ownership and other processes that open source licenses can require. Origin might work if it's interpreted really broadly, but at the same time seems really vague. I'm closing this but feel free to make a further argument.

I'm not sure what meanings "provenance" would provide that "origin" would fail (or not be as effective) to provide. Can you expand a little on what you mean by "other processes that open source licenses can require"?


Logging fixes

fixes #988 and #987

@sjezewski whenever you have a chance.

I notice that we removed all the log statements that report timing at the end of the request. What is the reason for that?
In #987 I understood the request to eliminate the redundancy between services pachyderm.pfsserver.API and pfs.API for instance (whose messages are otherwise redundant as far as I can tell other than that service name)
If you also eliminate the timing info you'll reduce the size by a factor of 4 instead of 2, so I could understand that desire.
If we are removing that in lieu of stats support for request timing (specifically the prometheus/grafana stats we haven't quite built yet), I'm ok w that ... but it does make me uncomfortable. I want to be clear about some utility we get from those logs.
I have found it useful to be able to see this information in the logs when debugging. Even if it was also reported in stats ... its really helpful to be able to correlate debug logs w certain statistics (bcz logs inevitably have more information about the nature of the request being made). Perhaps one alternative to meet this requirement (coordinating stats and logs) would be to report a unique request ID to both ... but normally stats services don't report individual requests that well?
But - as long as we agree we want to correlate them in the future, I'm good w this.

I notice that we removed all the log statements that report timing at the end of the request. What is the reason for that?

I just removed the duplicates, timing info is still present in the logs it's just you'll only see 1 copy of those messages instead of 2. I agree with your sentiment that that's important info we don't want to lose. This PR shouldn't remove any information from the logs... except for the word pachyderm which we can hopefully all remember ourselves at this point :stuck_out_tongue:


Suggestion: update documentation and examples

After spending few hours trying to make the plugin working I am giving up and I am switching to Uploadify that has a perfectly working Rails 3 example.
Unfortunately I do not have the time to become an expert in JS, jQuery and jQuery UI so for me (like I suspect for many other developers) having a working example and some updated basic documentation really makes the difference.

I got the follow error on Chrome on Mac OS. And Django server-side.
It is because uploadTemplate is undefined.
I need defined this? Where? Or is a bug?
Uncaught TypeError: undefined is not a function
$.widget._renderTemplatejquery.fileupload-ui.js:303
$.widget._renderUploadjquery.fileupload-ui.js:313
$.widget.options.addjquery.fileupload-ui.js:64
b.Widget._triggerjquery.ui.widget.min.js:15
$.widget._onAddjquery.fileupload.js:614
f.e.extend.eachjquery.min.js:2
$.widget._onAddjquery.fileupload.js:605
$.widget._onChangejquery.fileupload.js:668
f.event.dispatchjquery.min.js:3
f.event.add.i.h.handle.ijquery.min.js:3

I found that what makes this example so difficult for Rails to use is the fact that the Javascript files in the example are included in a SPECIFIC ORDER at the END of the index page.  What Rails likes to do in production mode is to compress all of the javascripts into one file and include that at the TOP of the page.  I'm no expert in Javascript or jQuery, but it appears that, at least in the blueimp example, that the javascript tags cannot be moved and still operate properly. Doing so will only produce javascript errors.
So what would be extra-nice is for someone to figure out how to get all of the javascript files to play nice with The Rails Way and submit that to the wiki.

The JS files are added at the end of the page for performance reasons (this allows the page to render without the JS engine blocking).
However, you should have no problem in putting all the script resources (except the templates script sections) into the head of the page. At least it works without problems in my tests with the static index.html.


Why is it giving this error? can you help me?

Please. Why is it giving this error? can you help me?

check if you have package.json available! Else, follow the steps in the repository again


Confusing warning messages for type checks

See comment: https://github.com/palantir/tslint/pull/3282#issuecomment-334503570
FYI: @markuskeunecke

For posterity:

Then are both the documentation and the warning messages are confusing.
If typeCheck and project are not defined but completed-docs in tslint.json is, then the warning:
Warning: The 'completed-docs' rule requires type information.

Is confusing, don't you think?
However, rules defined in tslint.json that do not require typeChecking are evaluated regardless and the tsconfig.json in this instance is somehow found.
When typeCheck: true is set then the output is the same as before.
Although typeCheck is no longer required (as you mentioned above), it is even more confusing that project must suddenly be set to evaluate type requiring rules.

However, rules defined in tslint.json that do not require typeChecking are evaluated regardless and the tsconfig.json in this instance is somehow found.

Why do you think that? If a rule does not need type information, it doesn't need the tsconfig.json. There's no need to find anything in this case.

project must suddenly be set to evaluate type requiring rules.

That's not true. --project was always required for them to work. So was --type-check which is now obsolete.

Behind the scenes TSLint uses TypeScript's TypeChecker to get the type information. That TypeChecker needs the tsconfig.json to know which files belong to the project and which compiler options to use.
TSLint doesn't try to infer any configuration. That's why you are getting the above mentioned error.
I get your point that the error does not provide any help to resolve the problem.
On a related note: the documentation of each rule states if it needs type information or not. For example https://palantir.github.io/tslint/rules/match-default-export-name/ and the link on that page leads you to the docs describing how to provide type information https://palantir.github.io/tslint/usage/type-checking/
(This information is missing in the docs of completed-docs. I opened #3284 for that)

I get your point that the error does not provide any help to resolve the problem.
And the documentation still points to the type-check flag. This hint should be removed from the documentation.

At least for us the requirement of project for type checking rules was not obvious. The clarification and discussion in #3282 lead us to the conclusion that documentation and message are not as clear as they could have been. And the other conclusion was that the proposed change is not the right way to fix the issue.

💀 It's time! 💀
TSLint is being deprecated and no longer accepting pull requests for major new changes or features. See #4534. 😱
If you'd like to see this change implemented, you have two choices:

Recommended: Check if this is available in ESLint + typescript-eslint ✅
Not Recommended: Fork TSLint locally 🤷♂

👋 It was a pleasure open sourcing with you!
If you believe this message was posted here in error, please comment so we can re-open the issue!


Can't reconnect to savegame

When i'm trying to load an earlier safe game by sharing the save game file, the client won't connect to the server.
The following error are shown on the debug display

What does the text log look like?

More testing results, somehow it's possible to join after having created a server, and then closed it however that results in a cascade of other problems, so it's not a fix

So if player 1 creates a server and then closes it, player 2 can still connect?

No player 1 and player 2 can both create servers then player 2 can close his server and join :)


feature idea: zoom in on subfolder

since the maximum display depth is limited, a significant part of the folder hierarchy is omitted. perhaps this can be improved by making it possible to zoom in on subfolders.

🙌 #26 added the root_path param


SOVRN: Changed code to allow requests to move forward if a banner obj…

…ect is found. Unsupported media types are just dropped in this case.

Oops, wrong upstream


broadcast tensors before execution

fixes #4

Can we implement this without relying on numpy? The ultimate goal is to port this to C++, so although this works, it becomes hard to port.

yeah, I don't love the fix, it was the quickest and dirtiest I could think of when I found the root cause :)
it's possible to implement without broadcasting the input tensors but will require more code (or something smart that I haven't come up with yet...)
let me take another pass
you're also most welcome to give it a shot, of course

Oh, you’re right. Actually I think relying on numpy broadcast is ok. We support broadcasting in general in our compiler, so it shouldn’t be a problem.
I’m a bit curious whether there’s any corner cases for this… it sounds like only the ellipsis indices should be broadcast, not the whole tensor. But I also can’t think of anything offhand.
Broadcasting to the output shape is probably best, like you’re doing here. 👍

everything broadcasts, see the last test I added with "ab" instead of ellipsis
except repeated indices within the same input operand, see https://github.com/sorenlassen/einsum-experiment/commit/d732e043a8320ec8e2b4b0851525e9a441be84aa

everything broadcasts, see the last test I added with "ab" instead of ellipsis
except repeated indices within the same input operand, see d732e04

Ah, I see! I guess tensorflow’s einsum is either different or (more likely) the docs don’t mention the broadcast behavior, or I missed it.
Thank you :)


Ip cameras

Is there any example for the IpCameras Category?

Sorry, HomeSpan does not currently support audio or video services.

Okay, I thought it supported, because it written in the Categories.md.
Not every category that written in the Categories.md is supported?

The Category setting in any HomeKit device is not functional. It's just for display purposes during pairing and provides hints to the Home App about what icons to use.  The actual functions of a HomeKit device are determined by the Services and Characteristics.  All the Services and Characteristics that are implemented in HomeSpan are defined on the Services.md page.


update testify to latest released version

Signed-off-by: Steve Kriss<EMAIL_ADDRESS>

Can someone merge this if you don't mind? Doing some heavy-duty rebasing & cleanup with the plugins PR and it would be helpful to have this in. thanks :)


Choice of shapefile generalisation

What problem would this feature solve? Please describe.
Currently changing shapefiles requires manual editing of source code files, this should be moved to a setting
Describe the solution you'd like
We should load all shapefile paths and have a flag to choose the desired files, with opinionated defaults

Somewhat done by moving to a declarative config file (incognita-config.toml), I think supporting e.g. multiple years for one boundary is a niche use-case and so closing for now. If there is a provable need open to implementing down the line.


Uncaught ValueError for data with invalid compression

dicomtrolley version: 3.0.4
Python version: 3.8
Operating System: ubuntu 22.04

Description
Related to https://github.com/ResearchBureau/tickets/issues/206
For certain data the following Exception is raised by pydicom:
  File "...\lib\site-packages\pydicom\filewriter.py", line 577, in write_data_element
    raise ValueError(
ValueError: (7FE0,0010) Pixel Data has an undefined length indicating that it's compressed, but the data isn't encapsulated as required. See pydicom.encaps.encapsulate() for more information

This value error is not caught by dicomtrolley, which causes issue further up the stack.
Catch this and raise TrolleyError
What I Did
An example of the offending data can be found in https://github.com/ResearchBureau/tickets/issues/206

This error is actually caught by Trolley and raised as a pydicom.storage.StorageError which derives from DICOMTrolleyError.
anonserver should catching the StorageError. This is not a dicomtrolley issue


mypy coverage for travis + coveralls

Might want to test this on a branch in the zulip repo before merging.

Automated message from Dropbox CLA bot
@rwbarton, it looks like you've already signed the Dropbox CLA. Thanks!

Merged, after resolving the merge conflicts.


Create simple Camera output page for controls and settings

Make a page that will show the default controls, sensor modes etc for debugging so user that wants to report a new camera or an issue they could goto the page and copy the details

Actually cchanged my mind ... Logs are enough for now


Error executing test by pytest

Describe the bug
When running tests using pytest 8.3.1 on Visual Studio 2022, the following error occurs.
Note that this error does not occur when pytest 8.0.2 is used.
Traceback (most recent call last):
  File "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\CORE\testlauncher.py", line 189, in <module>
    main()
  File "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\CORE\testlauncher.py", line 30, in main
    run(testRunner, coverage_file, test_file, args)
  File "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\CORE\testlauncher.py", line 119, in run
    patch_translate_non_printable()
  File "C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\CORE\testlauncher.py", line 136, in patch_translate_non_printable
    translate_non_printable =  getattr(_pytest.compat, "_translate_non_printable")
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module '_pytest.compat' has no attribute '_translate_non_printable'

The _translate_non_printable that is causing the error seems to have been removed from the pytest code.

https://github.com/pytest-dev/pytest/commit/3ba40954007d56b0f0cef251660c127fe6540137
https://github.com/pytest-dev/pytest/discussions/12222

Steps to Reproduce

Create a Python project on VS 2022 that uses pytest as the testing framework.
Install the latest pytest (currently 8.3.1) in the Python environment of the Python project.
Add any test code to the Python project.
Run the test from VS's Test Explorer.

Expected behavior
No error should occur.
Sample Code
For example, the following test code will reproduce the error.
def test_failure():
    assert 1 == 1

Configuration information (If you are providing a diagnostics file (see below), skip this section)
VS Version: 17.10.4
PTVS version: 17.0.24064.1
Python version: 3.11

The issue is that PTVS is trying to access pytest's private API, we will take a look and have it fixed.

For people finding this with google, and VS 2022 17.11.1 with pytest 8.3.2:
Change line 136 of this file to bypass this problem.
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\COMMUNITY\COMMON7\IDE\EXTENSIONS\MICROSOFT\PYTHON\Core\testlauncher.py
#note: this must match adapter\pytest\_discovery.py
def patch_translate_non_printable():
    import _pytest.compat
    translate_non_printable =  getattr(_pytest.compat, "_translate_non_printable", None)

+,None

Can confirm that this works with VS 17.6.4 and pytest 8.1.1 as well. Thank you!


Changing the colour of the dates?

Is it possible to change the colours of the text? I think this would be a good feature to add, as the calender is not very visible on a dark background. As you can see below:

hmm... also, why the default blue & purple colors? are those your primary/secondary theme setup? seems not.
Cuz those colors should come from your theme primary/secondary colors.
I will take a look and get back to you, haven't made an investigation with a dark theme actually... opss

I took a look at it, theming works correctlly as intended.
Perhaps you did override the Typography color in your theme setup to force it to be always black? Check your Mui theme setup.


When will full implementation code be released?

Hi, thanks for such a wonderful work.
When will full implementation code be released?

Hi @TongZhangTHU, I am still cleaning up, but it should be ready in a month or so. Worst case it should be out by the CoRL camera-ready deadline on Nov 15.
I just pushed my changes to RLBench. Still working on YARR and the main repo.

Hello, It's past Nov 15 but will the code be uploaded before CoRL?
We're testing the code based on the available Colab code but it also on  RLBench Pick&Lift where it seems to mistake different object color quite often; is this a limitation of the model? (Looking at the paper result, this seems to look like a problem on some task such as push button)

@Harimus I wasted too much time trying to switch to Pytorch Lightning. But I finally managed to get DDP training working. I am writing up a README now. Hopefully, the repo should be ready by this week 🤞

We're testing the code based on the available Colab code but it also on RLBench Pick&Lift where it seems to mistake different object color quite often

I am not sure about the context, but some things to consider:

Can you try with more training demos? Like a 100? The rollout visualizations on the website might give you a hint on how many demos are necessary. You shouldn't have any issues with different colors, if you train with sufficient demos.
How many iterations did you train the model for? Single-task agents from the paper were trained upto 40K iterations (depends on your batch size etc.)
Have you seen those colors during training? PerAct doesn't generalize to unseen colors since it's trained from scratch

problem on some task such as push button

The push button task involves history like "push the red button, and then the blue button". PerAct takes random guesses here since it doesn't really have memory, and is purely a reactive system (as stated in the Limitations).

Btw just want to share my appreciation for this. This is fantastic research, your code is neat, your README is extensive, and you're providing datasets and pretrained models. Thank you for the great work :pray:

Thanks @Kaixhin! Big fan of your open-source RL work as well!


Wiki Resource overview: Formatting issue with credssp column

Removed extra empty cell.

This change is

Hi @bartvermeersch, good spot! Could you do me favor though: The pipeline is failing because this PR does not contain an updated changelog, which is required so all changes are properly documented.
Could you please add the following lines to the Fixed block in the Unreleased section (at the top of the list):
- SharePointDsc
  - Fixed incorrect table formatting in the resource table of the Wiki

I'm not sure where to add it ...
Is it in a file or my initial comment? thanks

The repository contains a Changelog.md file:
https://github.com/dsccommunity/SharePointDsc/blob/master/CHANGELOG.md
Then add it here:


Apply CRB active learning to other models

Hello! Thank you for your amazing work!
Recently I am trying to apply CRB to other models since PV RCNN requires to much GPU memories.
I chose Pointpillar and kitti dataset but it comes out this error:

Traceback (most recent call last):
File "train.py", line 313, in
main()
File "train.py", line 255, in main
dist_train=dist_train
File "/home/CRB-active-3Ddet/tools/train_utils/train_active_utils.py", line 313, in train_model_active
accumulated_iter=accumulated_iter
File "../pcdet/utils/active_training_utils.py", line 271, in select_active_labels
selected_frames = strategy.query(leave_pbar, cur_epoch)
File "../pcdet/query_strategies/crb_sampling.py", line 80, in query
pred_dicts, _ = self.model(unlabelled_batch)
File "/opt/conda/envs/crb/lib/python3.6/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
return forward_call(*input, **kwargs)
File "../pcdet/models/detectors/pointpillar.py", line 21, in forward
pred_dicts, recall_dicts = self.post_processing(batch_dict)
File "../pcdet/models/detectors/detector3d_template.py", line 232, in post_processing
full_cls_scores = batch_dict['full_cls_scores'][batch_mask]
KeyError: 'full_cls_scores'

I will put my config on the next comment.
Is there anything wrong in my config file？Or is it possible to apply CRB to Pointpillar?
Thanks so much and looking forward to your reply.

My config file is like:
CLASS_NAMES: ['Car', 'Pedestrian', 'Cyclist']
DATA_CONFIG:
BASE_CONFIG: cfgs/dataset_configs/kitti_dataset.yaml
POINT_CLOUD_RANGE: [0, -39.68, -3, 69.12, 39.68, 1]
DATA_PROCESSOR:
- NAME: mask_points_and_boxes_outside_range
REMOVE_OUTSIDE_BOXES: True
    - NAME: shuffle_points
      SHUFFLE_ENABLED: {
        'train': True,
        'test': False
      }

    - NAME: transform_points_to_voxels
      VOXEL_SIZE: [0.16, 0.16, 4]
      MAX_POINTS_PER_VOXEL: 32
      MAX_NUMBER_OF_VOXELS: {
        'train': 16000,
        'test': 40000
      }
DATA_AUGMENTOR:
    DISABLE_AUG_LIST: ['placeholder']
    AUG_CONFIG_LIST:
        - NAME: gt_sampling
          USE_ROAD_PLANE: False
          DB_INFO_PATH:
              - kitti_dbinfos_train.pkl
          PREPARE: {
             filter_by_min_points: ['Car:5', 'Pedestrian:5', 'Cyclist:5'],
             filter_by_difficulty: [-1],
          }

          SAMPLE_GROUPS: ['Car:15','Pedestrian:15', 'Cyclist:15']
          NUM_POINT_FEATURES: 4
          DATABASE_WITH_FAKELIDAR: False
          REMOVE_EXTRA_WIDTH: [0.0, 0.0, 0.0]
          LIMIT_WHOLE_SCENE: False

        - NAME: random_world_flip
          ALONG_AXIS_LIST: ['x']

        - NAME: random_world_rotation
          WORLD_ROT_ANGLE: [-0.78539816, 0.78539816]

        - NAME: random_world_scaling
          WORLD_SCALE_RANGE: [0.95, 1.05]

MODEL:
NAME: PointPillar
VFE:
    NAME: PillarVFE
    WITH_DISTANCE: False
    USE_ABSLOTE_XYZ: True
    USE_NORM: True
    NUM_FILTERS: [64]

MAP_TO_BEV:
    NAME: PointPillarScatter
    NUM_BEV_FEATURES: 64

BACKBONE_2D:
    NAME: BaseBEVBackbone
    LAYER_NUMS: [3, 5, 5]
    LAYER_STRIDES: [2, 2, 2]
    NUM_FILTERS: [64, 128, 256]
    UPSAMPLE_STRIDES: [1, 2, 4]
    NUM_UPSAMPLE_FILTERS: [128, 128, 128]

DENSE_HEAD:
    NAME: AnchorHeadSingle
    CLASS_AGNOSTIC: False

    USE_DIRECTION_CLASSIFIER: True
    DIR_OFFSET: 0.78539
    DIR_LIMIT_OFFSET: 0.0
    NUM_DIR_BINS: 2

    ANCHOR_GENERATOR_CONFIG: [
        {
            'class_name': 'Car',
            'anchor_sizes': [[3.9, 1.6, 1.56]],
            'anchor_rotations': [0, 1.57],
            'anchor_bottom_heights': [-1.78],
            'align_center': False,
            'feature_map_stride': 2,
            'matched_threshold': 0.6,
            'unmatched_threshold': 0.45
        },
        {
            'class_name': 'Pedestrian',
            'anchor_sizes': [[0.8, 0.6, 1.73]],
            'anchor_rotations': [0, 1.57],
            'anchor_bottom_heights': [-0.6],
            'align_center': False,
            'feature_map_stride': 2,
            'matched_threshold': 0.5,
            'unmatched_threshold': 0.35
        },
        {
            'class_name': 'Cyclist',
            'anchor_sizes': [[1.76, 0.6, 1.73]],
            'anchor_rotations': [0, 1.57],
            'anchor_bottom_heights': [-0.6],
            'align_center': False,
            'feature_map_stride': 2,
            'matched_threshold': 0.5,
            'unmatched_threshold': 0.35
        }
    ]

    TARGET_ASSIGNER_CONFIG:
        NAME: AxisAlignedTargetAssigner
        POS_FRACTION: -1.0
        SAMPLE_SIZE: 512
        NORM_BY_NUM_EXAMPLES: False
        MATCH_HEIGHT: False
        BOX_CODER: ResidualCoder

    LOSS_CONFIG:
        LOSS_WEIGHTS: {
            'cls_weight': 1.0,
            'loc_weight': 2.0,
            'dir_weight': 0.2,
            'code_weights': [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
        }

POST_PROCESSING:
    RECALL_THRESH_LIST: [0.3, 0.5, 0.7]
    SCORE_THRESH: 0.1
    OUTPUT_RAW_SCORE: False

    EVAL_METRIC: kitti

    NMS_CONFIG:
        MULTI_CLASSES_NMS: False
        NMS_TYPE: nms_gpu
        NMS_THRESH: 0.01
        NMS_PRE_MAXSIZE: 4096
        NMS_POST_MAXSIZE: 500

OPTIMIZATION:
OPTIMIZER: adam_onecycle
LR: 0.003
WEIGHT_DECAY: 0.01
MOMENTUM: 0.9
MOMS: [0.95, 0.85]
PCT_START: 0.4
DIV_FACTOR: 10
DECAY_STEP_LIST: [35, 45]
LR_DECAY: 0.1
LR_CLIP: 0.0000001

LR_WARMUP: False
WARMUP_EPOCH: 1

GRAD_NORM_CLIP: 10

ACTIVE_TRAIN:
METHOD: crb
AGGREGATION: mean
PRE_TRAIN_SAMPLE_NUMS: 100
PRE_TRAIN_EPOCH_NUMS: 2
TRAIN_RESUME: False

SELECT_NUMS: 100
SELECT_LABEL_EPOCH_INTERVAL: 40

TOTAL_BUDGET_NUMS: 600

ACTIVE_CONFIG:
    K1: 5
    K2: 3
    BANDWIDTH: 5
    CLUSTERING: kmeans++

Hi, our framework currently supports two 3D detection models: PV-RCNN and SECOND.
To run Point-RCNN, you need to add some code that passes some key-value pairs in the data_dict that are required for active selection, such as the computed density, full_cls_scores, embedding and so on. Note also that there is no dropout layer in Point-RCNN, so a dropout layer needs to be added to enable stage 2 of CRB.
A good suggestion for you is to go through the code for active selection when using PVRCNN and see what are required in the data_dict/batch_dict.

Thanks so much for replying me,
but I am trying Pointpillar instead of Point RCNN,
Do you mean that only models with dropout layers can support CRB, otherwise I may have to make some change on the model(e.g. add a dropout layer)?

Yes, because our stage 2 requires dropout to get hypothesis labels. You may simply add a dropout layer to make it work.


Zuulu API gateway for service with authentication

If currency exchange service requires an authentication then how to do forward the API call from Zuulu API  gateway.
Any help ?

We have switched to Spring Cloud API Gateway now


Refactor to achieve the policy of not modifying any of the argument dicts in run, convert, isvalid

Doing a deep copy seems like a good way to get there, so long as we don't break caching of the fetched data.

Perhaps we could use copy-on-write, with something like this (wish there was a standard solution):
http://code.activestate.com/lists/python-list/313102/

On second thought copy on write may be overkill - just a copy would probably suffice.


Something wrong with  mouth_aspect_ratio( ) function.

As you written:
(mStart, mEnd) = (49, 68)
mouth = shape[mStart:mEnd]
A = dist.euclidean(mouth[2], mouth[9]) # 51, 59
B = dist.euclidean(mouth[4], mouth[7]) # 53, 57
C = dist.euclidean(mouth[0], mouth[6]) # 49, 55
If，mouth[0] means point 49, mouth[6] means point 55, then mouth 9 should be point 58 but not 59, mouth 7 should be 56 but not 57.

Thank you, I will take a look at the mouth landmark array.

For reference, here is are the labeled face landmarks:

updated the mouth landmark array in webcam file, will update video script later


Symfony 3.0 compatibility

Thanks for the hard work you put in this bundle. Do you have any plans to make it compatible with Symfony 3.0 in the near future?

Thanks @clonitza , yes we need to add 3.0 support. Im going to create a new 3.0 branch to work. PR will be merged in this.

Thanks a lot! Great news mate! :+1:

+1, excellent to hear !
Please just keep in mind that JWTAuthenticationBundle currently allows Symfony3 only on the dev-master branch (>= 2.0), which is currently not released, but available as a development branch.
In order to allow Symfony3, it would be necessary to update the composer version of this bundle.

JWTAuthenticationBundle just released the 1.4.2 tag, compatible with both Symfony2.3 and Symfony3.0.
Hope you will be able to release this branch soon with Symfony3 and JWTAuthenticationBundle 1.4.2 compatibility!

Hi guys, i have created a new 3.0 branch, we need to fix issues in this to add symfony 3.0 support, i started with composer.json and travis changes


Install chromium on devbox

this includes https://github.com/galaxyproject/planemo-machine/pull/63/files

@martenson You're right. One moment.


Extension issue

Issue Type: Bug
Extension Name: html-css-class-completion
Extension Version: 1.19.0
OS Version: Windows_NT x64 10.0.18362
VSCode version: 1.49.1

:warning: We have written the needed data into your clipboard. Please paste! :warning:

Already reported here: https://github.com/zignd/HTML-CSS-Class-Completion/issues/155


Problem saving a list of pointers on Server

Hello.
I've created an app using parse and mongolab.
I've been trying to save an object containing a list of others Parse Objects on my server, like that:
var Obj = new Parse.Object.extend("Obj")
var Obj2 = new Parse.Object.extend("Obj2")
var obj2 = new Obj({foo:bar})
var obj = new Obj({       property: [obj2]  })
. It works fine on the first time, however, when I try to create a second obj2, the Parse doesn't save anything in my DB, and it doesn't show any message of error.
I tried it both in my local server and using mLab.
I can see the property on parse-dashboard, it is showed like that:
[{"__type":"Pointer","className":"Foo","objectId":"B18qiuG3oG"}]
Is it the expected behavior, or is it a bug??
Thanks.

Closing due to inactivity.


Can't install Koel on cPanel

Describe the bug
Hi guys! I have full access to a cPanel/WHM environment and I was trying to set up a Koel installation on my domain. I was able to finish the install successfully, but the website simply does not open. I'm not using "php artisan serve", because I want to run it directly on the root folder of my domain.
To reproduce
Unfortunately, there's nothing to reproduce.
I just used Git and cloned Koel repository to my public_html folder. Then I shot a "composer install", blah blah blah, everything ran fine. The only thing that I was not able to do was to open the website.
Expected behavior
Simply open the Koel GUI when I enter tastreaming.ml
Screenshots
There are no screenshots, just a 500/404 error.
Environment

Koel version v4.2.2
OS: CENTOS v7.7 KVM
Browser: Firefox Developer 73
PHP v7.2
Node v10.18.1
cPanel/WHM v84.0.19

but the website simply does not open

Without more details this may be hard to debug but on the surface this sounds like a problem at the webserver level. What does your Apache or NGINX config look like?  You'll find an example for NGINX here:
https://github.com/phanan/koel/blob/master/nginx.conf.example

There are no screenshots, just a 500/404 error.
Anything in the server logs for PHP or your web server?

I am going to go ahead and close this issue for now. I don't believe this is an issue with Koel itself but perhaps with the install process used. @BRGustavoRibeiro if you are still having trouble make sure that Node is installed and running. If you are still having issues please leave a comment here.


Karpenter 1.0.6 - failed to assign an IP address to container

Description
Observed Behavior:
Any pods are stuck in "ContainerCreating" status with below error:
Warning  FailedCreatePodSandBox  2m47s (x1642 over 6h)  kubelet  (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "71ef22cdaf65163adca4c97ed66df6a7cdcdcbe7c011d0ff62a77648cba5b46b": plugin type="aws-cni" name="aws-cni" failed (add): add cmd: failed to assign an IP address to container
Expected Behavior:
Karpenter should detects that max allowed IP is reached on the node and provision a new one.
Reproduction Steps:
Versions:

Chart Version: 1.0.6
Kubernetes Version (kubectl version):  EKS 1.28
VPC CNI addon: v1.18.1-eksbuild.3

Other informations:

Behaviour happened after upgrading from 0.31 to 1.0.6. This issue never happened before
I'm facing issue on large instance. Currently the node is a x2iedn.4xlarge.
I've validated that the max allowed IP is well reached on the host (x2iedn.4xlarge = 8x CNI max + 30 IPs per CNIs = 240 IPs max)
Currently, 8 private IPs address + 232 secondary IP address assigned (so max IP reached)

Can you provide you nodepool and EC2NodeClass configuration? Also have you followed our troubleshooting guide around this issue? https://karpenter.sh/docs/troubleshooting/#cni-is-unable-to-allocate-ips-to-pods

Thanks for your answer.
Please, find below nodepool and ec2nodeclass configurations.
Nodepool configuration
apiVersion: karpenter.sh/v1
kind: NodePool
  name: knodes-app-spot-nodepool
spec:
  disruption:
    budgets:
    - nodes: 10%
    consolidateAfter: 2m
    consolidationPolicy: WhenEmptyOrUnderutilized
  template:
    metadata: {}
    spec:
      expireAfter: 720h0m0s
      nodeClassRef:
        group: karpenter.k8s.aws
        kind: EC2NodeClass
        name: default
      requirements:
      - key: karpenter.k8s.aws/instance-hypervisor
        operator: In
        values:
        - nitro
      - key: kubernetes.io/arch
        operator: In
        values:
        - arm64
        - amd64
      - key: nodegroup
        operator: In
        values:
        - knodes-app
      - key: karpenter.k8s.aws/instance-category
        operator: In
        values:
        - r
        - x
      - key: karpenter.sh/capacity-type
        operator: In
        values:
        - spot
      - key: topology.kubernetes.io/zone
        operator: In
        values:
        - eu-west-1c
      - key: karpenter.k8s.aws/instance-cpu
        operator: Gt
        values:
        - "2"
      - key: karpenter.k8s.aws/instance-cpu
        operator: Lt
        values:
        - "33"
      - key: kubernetes.io/os
        operator: In
        values:
        - linux
  weight: 100

EC2NodeClass:
apiVersion: karpenter.k8s.aws/v1
kind: EC2NodeClass
  name: default
spec:
  amiSelectorTerms:
  - alias: al2@latest
  blockDeviceMappings:
  - deviceName: /dev/xvda
    ebs:
      deleteOnTermination: true
      encrypted: true
      kmsKeyID: arn:aws:kms:xxxxx:xxxxxxxxx:key/xxxxxxxxxxxxxxxxxx
      volumeSize: 200Gi
      volumeType: gp3
  instanceProfile: nodes-karpenter-NodeInstanceProfile
  kubelet:
    evictionHard:
      memory.available: 2%
      nodefs.available: 10%
      nodefs.inodesFree: 5%
    evictionSoft:
      memory.available: 3%
    evictionSoftGracePeriod:
      memory.available: 2m0s
    podsPerCore: 12
    systemReserved:
      memory: 300Mi
  metadataOptions:
    httpEndpoint: enabled
    httpProtocolIPv6: disabled
    httpPutResponseHopLimit: 2
    httpTokens: required
  securityGroupSelectorTerms:
  - id: sg-xxxxxxxxxxxxxxxxx
  subnetSelectorTerms:
  - id: subnet-xxxxxxxxxxxxxxx
  - id: subnet-xxxxxxxxxxxxxxx
  - id: subnet-xxxxxxxxxxxxxxx

N.B: I've added "podsPerCore" to "fix" the issue temporarly
Yes I've read the troubleshooting section but:

I didn't set "max-pods" value so I guess karpenter uses the default max of the ec2 instance
I don't think we are using "Security Groups per Pod" (but have to validate that)

Thanks again

I confirm that we don't use "Security Groups per Pod" feature.
Another thing to mention is that, when the last issue occurs:

204 pods was assigned to the node
232 secondary IP address was assigned on the node + 8 "primary" (8 CNIs)

Seb.

I'm adding information about my issue:
Even with my "podsPerCore: 12" I'm still facing an issue.
The instance type is "r5b.8xlarge" (240 IPs max.)
Same behaviour: only 157 pods assigned to it and 232 secondary IP + 8 "primary".

we also have this issue is this supported by karpenter or do we need to implement an in house solution?

Also seeing this issue and wondering if this is a bug or something we need to handle externally to karpenter


How to show the X values on  chart series

like this

+1

Consolidating all bar labelling issues in #327


Redirect slack notif to mobile-sdk-ops channel

Codecov Report

Merging #250 (fd9d520) into develop (81aace0) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##             develop     #250   +/-   ##
==========================================
  Coverage      81.30%   81.30%
  Complexity       203      203
==========================================
  Files             26       26
  Lines            802      802
  Branches         104      104
==========================================
  Hits             652      652
  Misses           112      112
  Partials          38       38


Added code for Issue 18 - Fixed title display condition

The if-else condition caused the title of the site to not appear on the title tag.
This has been fixed by doing:
<title>{{ if .IsHome }}{{ .Site.Params.Title }}{{ else }}{{ .Title }}{{ end }} · {{ .Site.Params.Title }}</title>

Duplicate of https://github.com/eueung/hugo-casper-two/pull/27


update plugin postsubmit to track RELEASE file

Issue #, if available:
Description of changes:
Follow a release target for postsubmit to push to ECR.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

did you want to add the target here too or?

/approve

/lgtm


QPPSF- 8612, 8613 - conversion-tool infra terraform for ssl encryption

Information

Fixes #_.

QPPSF-8612
QPPSF-8613
Changes proposed in this PR:
Infrastructure updates in terraform for enabling ssl for conversion-tool

Adds SSM secret to store keystore password for certificates
Adds S3 bucket to store ssl certs securely for each environment
updates ECS service for conversion-tool, alb port to 8443
Updates ECS task definition container:host port mapping to 8443:8443
Adds HTTPS(443) Listener and associate ssl certificate to ALB from ACM
Updates ALB target group from http to https port
updates security group allow 8443 inbound
updates security group rules for port range 443-8443

Checklist

[ ] All JUnit tests pass (mvn clean verify).
[ ] New unit tests written to cover new functionality.
[ ] Added and updated JavaDocs for non-test classes and methods.
[ ] No local design debt. Do you feel that something is "ugly" after your changes?
[ ] Updated documentation (README.md, etc.) depending if the changes require it.

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:

create
~ update in-place

destroy
-/+ destroy and then create replacement

Terraform will perform the following actions:
module.conversion-tool.aws_ecs_cluster.conversion-tool-ecs-cluster will be updated in-place
~ resource "aws_ecs_cluster" "conversion-tool-ecs-cluster" {
arn                = "arn:aws:ecs:us-east-1:003384571330:cluster/qppsf-conversion-tool-dev"
capacity_providers = []
id                 = "arn:aws:ecs:us-east-1:003384571330:cluster/qppsf-conversion-tool-dev"
name               = "qppsf-conversion-tool-dev"
tags               = {
"Name"            = "qppsf-ct-ecr-dev"
"application"     = "ConversionTool"
"git-origin"      = "https://github.com/CMSgov/qpp-conversion-tool.git"
"owner"           = "qppar-final-scoring"
"pagerduty-email" =<EMAIL_ADDRESS>"project"         = "qppsf-ct"
"sensitivity"     = "PII/PHI"
"terraform"       = "true"
}
  + setting {
      + name  = "containerInsights"
      + value = "enabled"
    }
}

module.conversion-tool.aws_ecs_service.conversion-tool-service must be replaced
-/+ resource "aws_ecs_service" "conversion-tool-service" {
cluster                            = "arn:aws:ecs:us-east-1:003384571330:cluster/qppsf-conversion-tool-dev"
deployment_maximum_percent         = 100
deployment_minimum_healthy_percent = 0
desired_count                      = 1
enable_ecs_managed_tags            = false
- health_check_grace_period_seconds  = 0 -> null
~ iam_role                           = "aws-service-role" -> (known after apply)
~ id                                 = "arn:aws:ecs:us-east-1:003384571330:service/qppsf-conversion-tool-dev/conversion-tool-service-dev" -> (known after apply)
launch_type                        = "FARGATE"
name                               = "conversion-tool-service-dev"
platform_version                   = "1.4.0"
- propagate_tags                     = "NONE" -> null
scheduling_strategy                = "REPLICA"
tags                               = {
"Name"            = "qppsf-ct-ecr-dev"
"application"     = "ConversionTool"
"git-origin"      = "https://github.com/CMSgov/qpp-conversion-tool.git"
"owner"           = "qppar-final-scoring"
"pagerduty-email" =<EMAIL_ADDRESS>"project"         = "qppsf-ct"
"sensitivity"     = "PII/PHI"
"terraform"       = "true"
}
~ task_definition                    = "arn:aws:ecs:us-east-1:003384571330:task-definition/qppsf-conversion-tool-td-dev:18" -> (known after apply)
  - deployment_controller {
      - type = "ECS" -> null
    }

  - load_balancer { # forces replacement
      - container_name   = "conversion-tool" -> null
      - container_port   = 8080 -> null
      - target_group_arn = "arn:aws:elasticloadbalancing:us-east-1:003384571330:targetgroup/conversion-tg-dev/68be251dab93e230" -> null
    }
  + load_balancer { # forces replacement
      + container_name   = "conversion-tool"
      + container_port   = 8443
      + target_group_arn = (known after apply)
    }

    network_configuration {
        assign_public_ip = false
        security_groups  = [
            "sg-01f29f7f32a8789ef",
            "sg-030ae9a65cdad1954",
            "sg-0377d36214f7db48c",
            "sg-15ab1d66",
        ]
        subnets          = [
            "subnet-2d23a177",
            "subnet-913b76d9",
            "subnet-d59f7ab1",
        ]
    }

  + placement_strategy {
      + field = (known after apply)
      + type  = (known after apply)
    }
}

module.conversion-tool.aws_ecs_task_definition.conversion-tool must be replaced
-/+ resource "aws_ecs_task_definition" "conversion-tool" {
~ arn                      = "arn:aws:ecs:us-east-1:003384571330:task-definition/qppsf-conversion-tool-td-dev:10" -> (known after apply)
~ container_definitions    = jsonencode(
~ [ # forces replacement
~ {
command          = [
"/usr/src/run/qppConverter.sh",
]
- cpu              = 0 -> null
environment      = []
essential        = true
image            = "003384571330.dkr.ecr.us-east-1.amazonaws.com/qppsf/conversion-tool/dev:latest"
logConfiguration = {
logDriver = "awslogs"
options   = {
awslogs-group         = "/qppsf/conversion-tool-dev"
awslogs-region        = "us-east-1"
awslogs-stream-prefix = "dev"
}
}
mountPoints      = []
name             = "conversion-tool"
~ portMappings     = [
~ {
~ containerPort = 8080 -> 8443
~ hostPort      = 8080 -> 8443
protocol      = "tcp"
},
]
secrets          = [
{
name      = "APP_ENV"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/APP_ENV"
},
{
name      = "AR_API_BASE_URL"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/AR_API_BASE_URL"
},
{
name      = "BUCKET_NAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/BUCKET_NAME"
},
{
name      = "CPC_END_DATE"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/CPC_END_DATE"
},
{
name      = "CPC_PLUS_BUCKET_NAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/CPC_PLUS_BUCKET_NAME"
},
{
name      = "CPC_PLUS_UNPROCESSED_FILTER_START_DATE"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/CPC_PLUS_UNPROCESSED_FILTER_START_DATE"
},
{
name      = "CPC_PLUS_VALIDATION_FILE"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/CPC_PLUS_VALIDATION_FILE"
},
{
name      = "DB_APP_PASSWORD"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DB_APP_PASSWORD"
},
{
name      = "DB_APP_USERNAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DB_APP_USERNAME"
},
{
name      = "DB_MASTER_PASSWORD"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DB_MASTER_PASSWORD"
},
{
name      = "DB_MASTER_USERNAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DB_MASTER_USERNAME"
},
{
name      = "DEPLOY0A_PUBLIC-I-P"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DEPLOY0A_PUBLIC-I-P"
},
{
name      = "DYNAMO_TABLE_NAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/DYNAMO_TABLE_NAME"
},
{
name      = "FMS_TOKEN"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/FMS_TOKEN"
},
{
name      = "GDIT_NESSUS_PUB_KEY"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/GDIT_NESSUS_PUB_KEY"
},
{
name      = "JAVA_OPTS"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/JAVA_OPTS"
},
{
name      = "KMS_KEY"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/KMS_KEY"
},
{
name      = "NEWRELIC_API_KEY"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/NEWRELIC_API_KEY"
},
{
name      = "NEXUS_CREDS"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/NEXUS_CREDS"
},
{
name      = "NEXUS_HOST"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/NEXUS_HOST"
},
{
name      = "ORG_NAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/ORG_NAME"
},
{
name      = "SPLUNK_TOKEN"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/SPLUNK_TOKEN"
},
{
name      = "VALIDATION_URL"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/VALIDATION_URL"
},
{
name      = "RTI_ORG_NAME"
valueFrom = "arn:aws:ssm:us-east-1:003384571330:parameter/qppar-sf/dev/conversion_tool/RTI_ORG_NAME"
},
]
volumesFrom      = []
} # forces replacement,
]
)
cpu                      = "2048"
execution_role_arn       = "arn:aws:iam::003384571330:role/qppsf-ct-execution-role-dev"
family                   = "qppsf-conversion-tool-td-dev"
~ id                       = "qppsf-conversion-tool-td-dev" -> (known after apply)
memory                   = "5120"
network_mode             = "awsvpc"
requires_compatibilities = [
"FARGATE",
]
~ revision                 = 10 -> (known after apply)
- tags                     = {} -> null
task_role_arn            = "arn:aws:iam::003384571330:role/ecsTaskExecutionRole"
}
module.conversion-tool.aws_lb_listener.conversion-tool-ssl will be created

resource "aws_lb_listener" "conversion-tool-ssl" {

arn               = (known after apply)

certificate_arn   = "arn:aws:acm:us-east-1:003384571330:certificate/4e09608a-6e5f-4a30-a2aa-e0b4e257eeef"

id                = (known after apply)

load_balancer_arn = "arn:aws:elasticloadbalancing:us-east-1:003384571330:loadbalancer/app/qppsf-conversion-tool-lb-dev/c0d361c2b742565c"

port              = 443

protocol          = "HTTPS"

ssl_policy        = "ELBSecurityPolicy-2016-08"

default_action {

order            = (known after apply)
target_group_arn = (known after apply)
type             = "forward"
}
}

module.conversion-tool.aws_lb_target_group.conversion-tg must be replaced
-/+ resource "aws_lb_target_group" "conversion-tg" {
~ arn                                = "arn:aws:elasticloadbalancing:us-east-1:003384571330:targetgroup/conversion-tg-dev/68be251dab93e230" -> (known after apply)
~ arn_suffix                         = "targetgroup/conversion-tg-dev/68be251dab93e230" -> (known after apply)
deregistration_delay               = 300
~ id                                 = "arn:aws:elasticloadbalancing:us-east-1:003384571330:targetgroup/conversion-tg-dev/68be251dab93e230" -> (known after apply)
lambda_multi_value_headers_enabled = false
~ load_balancing_algorithm_type      = "round_robin" -> (known after apply)
name                               = "conversion-tg-dev"
~ port                               = 8080 -> 8443 # forces replacement
~ protocol                           = "HTTP" -> "HTTPS" # forces replacement
proxy_protocol_v2                  = false
slow_start                         = 0
tags                               = {
"Name"            = "qppsf-ct-ecr-dev"
"application"     = "ConversionTool"
"git-origin"      = "https://github.com/CMSgov/qpp-conversion-tool.git"
"owner"           = "qppar-final-scoring"
"pagerduty-email" =<EMAIL_ADDRESS>"project"         = "qppsf-ct"
"sensitivity"     = "PII/PHI"
"terraform"       = "true"
}
target_type                        = "ip"
vpc_id                             = "vpc-0ef66577"
  ~ health_check {
        enabled             = true
        healthy_threshold   = 3
        interval            = 30
        matcher             = "200-499"
        path                = "/health"
        port                = "traffic-port"
      ~ protocol            = "HTTP" -> "HTTPS"
      ~ timeout             = 5 -> (known after apply)
        unhealthy_threshold = 3
    }

  ~ stickiness {
      ~ cookie_duration = 86400 -> (known after apply)
      ~ enabled         = false -> (known after apply)
      ~ type            = "lb_cookie" -> (known after apply)
    }
}

module.conversion-tool.aws_s3_bucket.certs_bucket will be created

resource "aws_s3_bucket" "certs_bucket" {

acceleration_status         = (known after apply)

acl                         = "private"

arn                         = (known after apply)

bucket                      = "qppsf-conversion-tool-artifacts"

bucket_domain_name          = (known after apply)

bucket_regional_domain_name = (known after apply)

force_destroy               = false

hosted_zone_id              = (known after apply)

id                          = (known after apply)

region                      = (known after apply)

request_payer               = (known after apply)

tags                        = {

"Name"            = "qppsf-ct-s3-certs-bucket"
"application"     = "ConversionTool"
"git-origin"      = "https://github.com/CMSgov/qpp-conversion-tool.git"
"owner"           = "qppar-final-scoring"
"pagerduty-email" =<EMAIL_ADDRESS>"project"         = "qppsf-ct"
"sensitivity"     = "PII/PHI"
"terraform"       = "true"
}

website_domain              = (known after apply)

website_endpoint            = (known after apply)

lifecycle_rule {

enabled = true
id      = "default-lifecycle"
}

server_side_encryption_configuration {

rule {

apply_server_side_encryption_by_default {

sse_algorithm = "AES256"
}
}
}

versioning {

enabled    = true
mfa_delete = false
}
}

module.conversion-tool.aws_s3_bucket_policy.certs_bucket will be created

resource "aws_s3_bucket_policy" "certs_bucket" {

bucket = (known after apply)
id     = (known after apply)
policy = (known after apply)
}

module.conversion-tool.aws_s3_bucket_public_access_block.certs_bucket-public-access-block will be created

resource "aws_s3_bucket_public_access_block" "certs_bucket-public-access-block" {

block_public_acls       = true
block_public_policy     = true
bucket                  = (known after apply)
id                      = (known after apply)
ignore_public_acls      = true
restrict_public_buckets = true
}

module.conversion-tool.aws_security_group.ct_app will be updated in-place
~ resource "aws_security_group" "ct_app" {
arn                    = "arn:aws:ec2:us-east-1:003384571330:security-group/sg-030ae9a65cdad1954"
description            = "Allow inbound traffic"
egress                 = [
{
cidr_blocks      = [
"<IP_ADDRESS>/0",
]
description      = ""
from_port        = 0
ipv6_cidr_blocks = []
prefix_list_ids  = []
protocol         = "-1"
security_groups  = []
self             = false
to_port          = 0
},
]
id                     = "sg-030ae9a65cdad1954"
~ ingress                = [
- {
- cidr_blocks      = []
- description      = ""
- from_port        = 8080
- ipv6_cidr_blocks = []
- prefix_list_ids  = []
- protocol         = "tcp"
- security_groups  = [
- "sg-0377d36214f7db48c",
]
- self             = false
- to_port          = 8080
},
+ {
+ cidr_blocks      = []
+ description      = ""
+ from_port        = 8443
+ ipv6_cidr_blocks = []
+ prefix_list_ids  = []
+ protocol         = "tcp"
+ security_groups  = [
+ "sg-0377d36214f7db48c",
]
+ self             = false
+ to_port          = 8443
},
]
name                   = "conversion-tool-app-dev"
owner_id               = "003384571330"
revoke_rules_on_delete = false
tags                   = {
"Name" = "conversion-tool-app-dev"
}
vpc_id                 = "vpc-0ef66577"
}
module.conversion-tool.aws_security_group_rule.allow_http will be destroyed

resource "aws_security_group_rule" "allow_http" {

cidr_blocks       = [

"<IP_ADDRESS>/21",
"<IP_ADDRESS>/24",
] -> null

from_port         = 80 -> null
id                = "sgrule-2724954422" -> null
ipv6_cidr_blocks  = [] -> null
prefix_list_ids   = [] -> null
protocol          = "tcp" -> null
security_group_id = "sg-0377d36214f7db48c" -> null
self              = false -> null
to_port           = 8080 -> null
type              = "ingress" -> null
}

module.conversion-tool.aws_security_group_rule.allow_https will be created

resource "aws_security_group_rule" "allow_https" {

cidr_blocks              = [

"<IP_ADDRESS>/21",
"<IP_ADDRESS>/24",
]

from_port                = 443
id                       = (known after apply)
protocol                 = "tcp"
security_group_id        = "sg-0377d36214f7db48c"
self                     = false
source_security_group_id = (known after apply)
to_port                  = 8443
type                     = "ingress"
}

module.conversion-tool.aws_security_group_rule.ct-ingress-from-https-elb-to-ui will be created

resource "aws_security_group_rule" "ct-ingress-from-https-elb-to-ui" {

from_port                = 443
id                       = (known after apply)
protocol                 = "tcp"
security_group_id        = "sg-030ae9a65cdad1954"
self                     = false
source_security_group_id = "sg-0377d36214f7db48c"
to_port                  = 8443
type                     = "ingress"
}

module.conversion-tool.aws_ssm_parameter.ssl_secret will be created

resource "aws_ssm_parameter" "ssl_secret" {

arn         = (known after apply)
description = "SSL KeyStore Password"
id          = (known after apply)
key_id      = (known after apply)
name        = "/qppar-sf/dev/conversion_tool/SSL_SECRET"
overwrite   = true
tags        = {

"Name"            = "qppsf-ct-ssm-dev"
"application"     = "ConversionTool"
"git-origin"      = "https://github.com/CMSgov/qpp-conversion-tool.git"
"owner"           = "qppar-final-scoring"
"pagerduty-email" =<EMAIL_ADDRESS>"project"         = "qppsf-ct"
"sensitivity"     = "PII/PHI"
"terraform"       = "true"
}

tier        = "Standard"
type        = "SecureString"
value       = (sensitive value)
version     = (known after apply)
}

Plan: 10 to add, 2 to change, 4 to destroy.


Allow diag task to emulate interesting metrics

For better metrics testing, we need a feed of metrics which are for a real activity. Diag allows this, but doesn't provide any texture for dashboard verification or development.
It would be quite easy to a diag task which has configurable metric names, types, and value generators.

complete


Movies - playMovie endpoint

Endpoint details: https://api.helioviewer.org/docs/v2/api/api_groups/movies.html#playmovie

Not going to implement this since it returns HTML and doesn't make sense for the API.
For getting movies the API will use downloadMovie.


Version 5.0.0 of plugin - Cannot set configuration override in application.yml or application.groovy

Expected Behavior
I have set some spring-security-core overrides in application.yml thus:
grails:
    plugin:
        springsecurity:
            userLookup:
                userDomainClassName: test.User
                usernamePropertyName: username
                passwordPropertyName: passwd
                enabledPropertyName: enabled
                accountExpiredPropertyName: accountExpired
                accountLockedPropertyName: accountLocked
                passwordExpiredPropertyName: passwordExpired
                authoritiesPropertyName: authorities
                authorityJoinClassName: test.UserRole

But they are not being picked up.  The code in ReflectionUtils.getSecurityConfig appears to be the problem.  Its doing:
grailsConfig.getProperty('grails.plugin.springsecurity', ConfigObject.class)

and that is returning null
If I debug and evaluate the following instead, it works:
grailsConfig.grails.plugin.springsecurity

As does:
grailsConfig.getProperty('grails.plugin.springsecurity', org.grails.config.NavigableMap.class)
Actual Behaviour
No response
Steps To Reproduce
Create grails app with 5.0.0 version of spring security plugin
Add the overrides to the application.yml
Start app and debug into ReflectionUtils.getSecurityConfig()
Environment Information
No response
Example Application
No response
Version
5.1.2

Noticed the same earlier when attempting to use version 5 of the plugin with the spring security rest plugin. None of my overrides in application.groovy where picked up either.
I think this bug is related to https://github.com/grails/grails-core/issues/12415 and evaluating
grailsConfig.getProperty('grails.plugin.springsecurity', Map.class) instead of grailsConfig.getProperty('grails.plugin.springsecurity', ConfigObject.class)
in a debugger shows the correct values as opposed to null as you discovered.

@puneetbehl thoughts or feedback on the ETA?

This should be resolved with Grails 5.1.4

@puneetbehl thank you very much! I can confirm this issue is resolved with Grails 5.1.4


r3nzskin works effectively and is safe. It's completely free from foreign person. and FREE

I have been using it from the previous version until now. And now he has released a free version, so I am here to share this information with everyone. It is SAFE.

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

for non cn ppl download [Int.l.Server.ReSkin.7z]

I have been using it from the previous version until now. And now he has released a free version, so I am here to share this information with everyone. It is SAFE.

Tutorial: https://youtu.be/JOC5vcmueIY?si=p2Fbw6-C5BUnrL4B

do NOT download from this guy. it's so scummy that he makes money off of a dude who made this for free.

I have been using it from the previous version until now. And now he has released a free version, so I am here to share this information with everyone. It is SAFE.

Tutorial: https://youtu.be/JOC5vcmueIY?si=p2Fbw6-C5BUnrL4B

do NOT download from this guy. it's so scummy that he makes money off of a dude who made this for free.

i cracked it and it's bound to be detected. it's using its own driver to load it so yeah it will get detected eventually

for non cn ppl download [Int.l.Server.ReSkin.7z]

doesn't seem to work

I have been using it from the previous version until now. And now he has released a free version, so I am here to share this information with everyone. It is SAFE.

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

This one also has viruses/tested and detected with malwarebytes

It not virus

I have been using it from the previous version until now. And now he has released a free version, so I am here to share this information with everyone. It is SAFE.

Tutorial: https://youtu.be/JOC5vcmueIY?si=p2Fbw6-C5BUnrL4B

do NOT download from this guy. it's so scummy that he makes money off of a dude who made this for free.

i cracked it and it's bound to be detected. it's using its own driver to load it so yeah it will get detected eventually

For the driver is show on the video it use a driver to load

for non cn ppl download [Int.l.Server.ReSkin.7z]

IT WORKS!! tysm
I have a bit of a problem though, whenever I exit and enter a new game it doesnt load at all, and I have to press "end" key to end the program and re-run it for it to work again

How were you able to get the program working? Did you just download the file on github and run the exe file? Or am I missing a few steps?

for non cn ppl download [Int.l.Server.ReSkin.7z]

IT WORKS!! tysm
I have a bit of a problem though, whenever I exit and enter a new game it doesnt load at all, and I have to press "end" key to end the program and re-run it for it to work again

How were you able to get the program working? Did you just download the file on github and run the exe file? Or am I missing a few steps?

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

This one also has viruses/tested and detected with malwarebytes

u are saying as if R3nzskin was never detected as a virus ,🤣 it's always been a false positive

lmao did a scan yesterday the new one has 13 and the r3nz one has 40+

for non cn ppl download [Int.l.Server.ReSkin.7z]

IT WORKS!! tysm
I have a bit of a problem though, whenever I exit and enter a new game it doesnt load at all, and I have to press "end" key to end the program and re-run it for it to work again

How were you able to get the program working? Did you just download the file on github and run the exe file? Or am I missing a few steps?

I also encountered a problem. I pressed the home button to inject, but using fn+delete (delete and insert are one key) in the game could not bring up the menu.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

This one also has viruses/tested and detected with malwarebytes

u are saying as if R3nzskin was never detected as a virus ,🤣 it's always been a false positive

lmao did a scan yesterday the new one has 19 and the r3nz one has 40+

Injector will always false positive.

 There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

Works perfectly, Can't wait for an English Version for Riot Region

he already made it https://github.com/hydy100/R3nzSkin/releases/tag/14.12_Beta

I got it working. Program works perfectly just like r3nz.

guys its not working for me

only sever riot. no support sever china

明明有各种开源的，闭源还各种封装广告的，除了加壳还会干什么？

I got it working. Program works perfectly just like r3nz.

How do u make it work, I did everything i press "Home" it does the sound that its activated but when i go on my game nothing appear.
Can someone help me please !!
Thank you.

I got it working. Program works perfectly just like r3nz.

How do u make it work, I did everything i press "Home" it does the sound that its activated but when i go on my game nothing appear even tho i press the "Ins" key it doesn't show anything, i'm on EUW server. Can someone help me please !!  There is another one made by cn server people that works in Riot Server.

 There is another one made by cn server people that works in Riot Server.

What are you talking about, man?

use this instead
https://github.com/hydy100/R3nzSkin/releases/tag/14.12
after u open it press home button on keyboard wait 5-10 seconds

malwarebytes detects trojan lol

malwarebytes detects almost everything, even the old r3nzskin, if you are afraid to use it then don't you aren't being forced to use it bro

then press insert

Thank you so much, its working pretty well.

working for me also, you're the best

where is the downlaod link ?
and it's works for EUNE ?


Installing Longhorn after creating cluster

Is there a way to specify additional packages to be installed on all nodes? For example, when installing longhorn with helm manually it fails since the "check env" script says nfs-client is not found in agent-small and open-iscsi is not found in agent-small.

In kube.tf, search for "package" and you will find the variable that can help you do that.
However, the packages you are mentioning are already installed.
What version are you using?
Please share your kube.tf without comments and sensitive data.

locals {
  hcloud_token = "*********"
}

module "kube-hetzner" {
  providers = {
    hcloud = hcloud
  }
  hcloud_token = local.hcloud_token

  source = "kube-hetzner/kube-hetzner/hcloud"

  ssh_public_key = file("~/.ssh/id_rsa.pub")
  ssh_private_key = file("~/.ssh/id_rsa")

  network_region = "eu-central"

  control_plane_nodepools = [
    {
      name        = "control-plane-nbg1",
      server_type = "cpx11",
      location    = "nbg1",
      labels      = [],
      taints      = [],
      count       = 1
    },
    {
      name        = "control-plane-fsn1",
      server_type = "cpx11",
      location    = "fsn1",
      labels      = [],
      taints      = [],
      count       = 1
    },
    {
      name        = "control-plane-hel1",
      server_type = "cpx11",
      location    = "hel1",
      labels      = [],
      taints      = [],
      count       = 1
    }
  ]

  agent_nodepools = [
    {
      name        = "agent-small-nbg1",
      server_type = "cpx21",
      location    = "nbg1",
      labels      = [],
      taints      = [],
      count       = 1
    },
    {
      name        = "agent-small-fsn1",
      server_type = "cpx21",
      location    = "fsn1",
      labels      = [],
      taints      = [],
      count       = 1
    }
  ]

  load_balancer_type     = "lb11"
  load_balancer_location = "nbg1"

  base_domain = "*********"

  initial_k3s_channel = "v1.25"

  cluster_name = "*********"

  extra_firewall_rules = [
    # Disable outbound rules
    {
      direction       = "out"
      protocol        = "tcp"
      port            = "any"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
    },
    {
      direction       = "out"
      protocol        = "udp"
      port            = "any"
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
    },
    {
      direction       = "out"
      protocol        = "icmp"
      port            = ""
      source_ips      = []
      destination_ips = ["<IP_ADDRESS>/0", "::/0"]
    }
  ]

  enable_cert_manager = true

  # use_control_plane_lb = true

}

provider "hcloud" {
  token = local.hcloud_token
}

terraform {
  required_version = ">= 1.3.3"
  required_providers {
    hcloud = {
      source  = "hetznercloud/hcloud"
      version = ">= 1.35.2"
    }
  }
}

output "kubeconfig" {
  value     = module.kube-hetzner.kubeconfig
  sensitive = true
}

In kube.tf, search for "package" and you will find the variable that can help you do that.

ADVANCED - Custom helm values for packages above (search _values if you want to located where those are mentioned upper in this file)

Now traefik, installed by default and not tampered with, randomly gives "Forbidden" for all of my ingresses.

I guess this can't work since it's expecting normal zypper (logs say it can't be found) but I guess that's to be expected since MicroOS probably uses something else (maybe similar to rpm-ostree on CoreOS?)

@aleksasiriski We take care of all of this for you. First of all, those packages are already installed. All the packages need by Longhorn are installed already!
Please make sure to use the latest version by doing "terraform init -upgrade".
Now in very rare cases, you do need to install things, then you can use the "extra_packages_to_install" variable.
If you are curious, under the hood this uses transactional-update which in turns uses zypper.

I looked at your sourced and confirmed that those pkgs are installed indeed.
I tried applying this:
apiVersion: v1
kind: Namespace
metadata:
  name: longhorn-system
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: longhorn-crd
  namespace: kube-system
spec:
  chart: longhorn-crd
  repo: https://charts.rancher.io
  targetNamespace: longhorn-system
---
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
  name: longhorn
  namespace: kube-system
spec:
  chart: longhorn
  repo: https://charts.rancher.io
  targetNamespace: longhorn-system
  valuesContent: |-
    defaultSettings:
      defaultDataPath: /var/longhorn
    persistence:
      defaultFsType: ext4
      defaultClassReplicaCount: 3
      defaultClass: false

And it spits out this error sadly:
Error: INSTALLATION FAILED: chart requires kubeVersion: >=1.18.0-0 <1.25.0-0 which is incompatible with Kubernetes v1.25.5+k3s2

Using the official Longhorn chart results in this:

But it's really strange that their "check env" script fails to find iscsi and nfs...

@aleksasiriski As the error message says, this version of longhorn requires kube < 1.25, but you are forcing v1.25 via initial_k3s_version.

But lucky for you, you can now change the Longhorn helm chart repo, and that would allow you to install a newer version compatible with kube v1.25, see https://github.com/kube-hetzner/terraform-hcloud-kube-hetzner/pull/510.

Using the official Longhorn chart results in this:
But it's really strange that their "check env" script fails to find iscsi and nfs...

This was with official longhorn chart

Also, I wouldn't I need to create a new cluster for longhorn to be deployed with it enabled in kube.tf?

Yes, of course, you need to create a cluster with longhorn enabled, and when doing so, you really do not need to touch any charts. Everything is done for you automatically! Just remember, if you are going to use v1.25, you need to change the default longhorn repo with longhorn_repository = "https://charts.longhorn.io".
I repeat, no need for custom charts!

@aleksasiriski If you want to use Longhorn the tested way, yes. Now you are completely free to install Longhorn on your own the way you see fit, but since that is not a use case we usually deal with, the amount of support we can provide is limited.

@aleksasiriski If you want to use Longhorn the tested way, yes. Now you are completely free to install Longhorn on your own the way you see fit, but since that is not a use case we usually deal with, the amount of support we can provide is limited.

If I copy paste commands from your script, which in turn equals official way of installing Longhorn from their docs, shouldn't that also count as "tested way" and in turn would result in a working setup?
My question now is: are nfs-client and iSCSI installed always, or only when lonhorn is set to enabled in kubetf? If it's only the latter that would explain all of mine frustration.

@aleksasiriski I actually do not remember that exact logic, so just search the code for "nfs-client", and retrace the logic please.
Now, you also always install anything manually, just ssh into the node (see readme for how to), and install new packages with transactional-update pkg install <package-name>.

Now, you also always install anything manually, just ssh into the node (see readme for how to), and install new packages with transactional-update pkg install <package-name>.

But then that wouldn't install it if I make new nodes?

@aleksasiriski Yes, it would! But you need to have enable_longhorn set to true.
Even simpler, you could create new-nodepools that double your current cluster in since, apply, wait a little bit, drain old nodes from old nodepools with kubectl drain, then set the old nodepool count to 0, and apply again, and you will have new a cluster with longhorn.
Another more advanced tactic would be to augment each nodepool by +1, after enabling longhorn of course.

My question now is: are nfs-client and iSCSI installed always, or only when longhorn is set to enabled in kube.tf? If it's only the latter that would explain all of mine frustration.

It seems my theory is correct, after enabling Longhorn, but not making storage pools, and also renaming my worker pools the script reinstalled all workers with nfs-client and iscsi

@aleksasiriski The labels are not used at all in the logic. Your issue is one of Kubernetes version, again you have to use v1.24 to be able to run Longhorn. Please trust me, it's not the first time I am seeing this issue!

@aleksasiriski The labels are not used at all in the logic.
When you retrace the logic for nfs-client, here's what you get:

Basically, the flag needs to be enabled for it to install. And you can't rename nodepools, it will mess things up at the IP attribution level, once created it needs to remain (see the doc).

Now your choice is to install these packages manually, or just create new node pools like explained above.

@aleksasiriski The labels are not used at all in the logic.
When you retrace the logic for nfs-client, here's what you get:

Basically, the flag needs to be enabled for it to install. And you can't rename nodepools, it will mess things up at the IP attribution level, once created it needs to remain, even with a count of 0 (see the doc).

Well I already changed node pool names, and it works without issues?

@aleksasiriski Good to hear, the way the logic is done, it could work, but it's not safe for your cluster. But if it survived the terraform apply, it should be ok from then on.
Anyways, just so you know, there is a project called Velero by VMware, that enables you to backup your cluster and restore it on a new one. That would maybe simplify your life!
For how to use it, please search this project, there are a few discussions and maybe issues that touched upon it.


Add a helper for creating a CharSpan from a C string.

Hides the strlen people have to keep doing.
Problem
Lots of CharSpan(foo, strlen(foo)).
Change overview
Add CharSpan::fromCharString.
Testing
No behavior changes, just slightly cleaner code.

Fast tracking, given this is a simple swap in, and tests pass.


Update

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

@saisatishkarra

You should also update .github/workflows/build.yml to test this version

For the meantime, until this package is published, I've published a fork with the node engine changes:
https://www.npmjs.com/package/@itsikm/httpsnippet

@saisatishkarra

@saisatishkarra

@filfreire

@filfreire

Thank you for the PR, we will handle this in a separate one

Thank you for the PR, we will handle this in a separate one

Are you kidding me? Instead of just merging?


Add frame parsing logic

Summary
This PR adds structs and en-/decoding logic required for serialisation of rSocket frames.
Details
First and foremost, the parsing logic uses Data as its essential binary representation, as Data is contained in Foundation (standard library in Swift) and other binary representations like ByteBuffer are convertible to it.
To make working with Data a bit safer and remove boilerplate, I added a dependency on a very lightweight library called BinaryKit. It is a very efficient wrapper around Data which makes it easier to, for example, append single bits to a binary.
As it stands, we have created a PR to make parsing a bit more efficient for our use case.
If our goal is to not have such a dependency, we could replicate something similar which is optimised for our use case, but I leave that up for debate, as it also would be more code to maintain.
I have structured the frame parsing for each frame in the following parts:
Frame struct:

ErrorFrame.swift
public struct ErrorFrame {
    public let header: FrameHeader

    public let errorCode: ErrorCode

    public let errorData: String

    public init(
        header: FrameHeader,
        errorCode: ErrorCode,
        errorData: String
    ) {
        self.header = header
        self.errorCode = errorCode
        self.errorData = errorData
    }
}

Decoder:

ErrorFrameDecoder.swift
public struct ErrorFrameDecoder: FrameDecoder {
    public func decode(header: FrameHeader, dataExcludingHeader: Data) throws -> ErrorFrame {
        let errorCode: ErrorCode
        let errorData: String
        var binary = Binary(bytes: Array(dataExcludingHeader))
        do {
            let codeValue = try binary.readUInt32()
            errorCode = ErrorCode(rawValue: codeValue)

            let remainingBytes = binary.count - binary.readBitCursor
            errorData = try binary.readString(quantityOfBytes: remainingBytes, encoding: .utf8)
        } catch let error as BinaryError {
            throw FrameError.binary(error)
        }
        return ErrorFrame(
            header: header,
            errorCode: errorCode,
            errorData: errorData
        )
    }
}

Encoder:

ErrorFrameEncoder.swift
public struct ErrorFrameEncoder: FrameEncoder {
    public func encode(frame: ErrorFrame) throws -> Data {
        var binary = Binary()

        let headerData = try FrameHeaderEncoder().encode(header: frame.header)
        binary.writeBytes(Array(headerData))

        binary.writeInt(frame.errorCode.rawValue)

        binary.writeString(frame.errorData)

        return Data(binary.bytesStore)
    }
}

I chose to have separate encoders/decoders with instance methods instead of static ones for several reasons:

similar to JSONEncoder/JSONDecoder from Foundation
instance methods make it possible to make en-/decoders "configurable", similarly to JSON coding where you can define a dateEncodingStrategy to use when serialising Date instances (e.g. millisecondsSince1970, secondsSince1970, etc.)
you can inject the corresponding en-/decoder dependency for better testability (to be able to perform method swizzling of static methods you would need Objective-C which would decrease performance a lot)

Example
To parse a given frame you would first parse the leading 6 bytes as the header to know which frame to parse. Then, depending on the type, you can use the corresponding implementation of the FrameDecoder protocol:
let frameData: Data
guard frameData.count >= FrameHeader.lengthInBytes else {
    // frame is not big enough to contain the header
    return
}

let headerData = frameData.prefix(FrameHeader.lengthInBytes)
let bodyData = frameData.suffix(from: FrameHeader.lengthInBytes)

let headerDecoder = FrameHeaderDecoder()
let frameHeader = try headerDecoder.decode(data: headerData)

switch frameHeader.type {
case .error:
    let frameDecoder = ErrorFrameDecoder()
    let frame = try frameDecoder.decode(header: frameHeader, dataExcludingHeader: bodyData)
    try frame.validate() // optionally validate the frame
    // ...
default: break
}

For now I have chosen to use the throws syntax, but I'm a bit unhappy about it, since this means any errors thrown are untyped (only constrained to Error). What do you think about changing the return type to Result<ErrorFrame, ErrorFrameError> instead? This means, the call site knows exactly which type of error that occurs and does not have to have those wildcard catchall error cases. I will leave that up for debate as well.
Another thing I want to discuss is frame validation. For now, the serialisation logic will not perform full validation (e.g. streamId has to be 0 for certain frames), but I added an extension function for every frame that might perform some validation. What are your thoughts on this?
Discussion
Here is a quick summary on those three talking points in this PR:

BinaryKit vs. self made
Typed errors using Result<Value, Error> instead of throws
Frame validation

BinaryKit vs. self made

I would suggest using Apple / Swift NIO's ByteBuffer instead of Data as the core building block for the parsing etc. It is very well suited for this kind of work (en/decoding protocol frames) and is also what we use to power various impls, from http, through grpc ald other protocols in the swift ecosystem. I recommend this also because, realistically, NIO is what is best suited to power the actual networking as well once you get to that part of the implementation -- it abstracts away the underlying networking, so you'll be able to get the best out of running on either apple or server/linux platforms with one impl. You'll also avoid having to roundtrip between Data and other data representations to put the data on the wire this way by sticking to ByteBuffers all the way 👍

@ktoso do you foresee any issues related to interop with other transports that are not using ByteBuffer?

No, it is easier (and potentially allocation-free if possible) to get a Data view data stored in a ByteBuffer - https://github.com/apple/swift-nio/blob/main/Sources/NIOFoundationCompat/ByteBuffer-foundation.swift#L100-L135
It is not possible to avoid allocations going the other way -- if stored as Data and need to write to NIO.
NIO is like Netty in Swift-land which you are well familiar with, and it's what we're building all of the OSS ecosystem tools and libraries on. It automatically offers Network.framework APIs on Apple platforms as well. One could debate if on iOS one should rather drive using the more high level URLSession, but on server sticking to NIO is the way. And since you'll want to support both stories anyway, sticking to NIO first seems like the better strategy IMHO.
You'll also be in the same boat as the Apple maintained Swift gRPC etc, which is a good boat to be on - sharing the same story about transports.

Gotch!Thank you for confirmation @ktoso! I was thinking the same way but it seemed that Data supports zero-copy as well.
@nkristek do you think we can migrate to ByteBuffer from swift-nio?

I just spoke with @Marcocanc and together we will transition this PR to use ByteBuffer instead.