Provide an PredicetKube scaler

Proposal
PredictKube is a proactive KEDA scaler made by Dysnix for Kubernetes projects
Scaler Source
Prometheus + PredictKube AI API
Scaling Mechanics
It's based on an AI model trained on cloud traffic data: public, business, and custom metrics. It helps to deal with overprovisioning by predicting the traffic trend and timely resource balancing. PredictKube is easy to install in your environment and its AI model demands only 2 weeks data about your traffic to start predicting efficiently.
Authentication Source
API key
Anything else?
We'd like to develop this project continuously, and thus, we encourage you to leave us your feedback. We're eager to hear your thoughts about PredictKube and its model efficiency.
Related PR: https://github.com/kedacore/keda/pull/2418

Relates to #197 & #2401

Can you share some more information related to the billing model & legal implications of PredictKube? For example, will you train the AI model based on the metrics that you use for KEDA?

Also, our community standup is next week on Tuesday. Would you be able to join it and share more on this scaler?

Can you share some more information related to the billing model & legal implications of PredictKube? For example, will you train the AI model based on the metrics that you use for KEDA?

Hi Tom. Thank you for your questions. Regarding the legal issues of PredictKube, we can assure that:
Any personal data that we are asking for is used only for sending the API key and contacting our representatives to answer the questions about PredictKube. We may ask for the name, email address, company name, phone number—so people choose a way to communicate with us that is convenient for them.
We store log files and collect data about the performance of a PredictKube in a certain environment. But we do not monitor or log data from customer servers when they use PredictKube, as we may collect only statuses and logs of the PredictKube itself. And also we have access to typical web analytics of PredictKube website including the type of browser, access sessions, pages views, IP address, and the page visited before entering our website.
We track the metrics of KEDA on the basis of a third-party service provider.
We’re sorry for publishing Cookies and Privacy Policies earlier. They’ll be published soon, and I’ll add a link here for everyone to review it.
Here’s an answer about the billing model. Free access to the PredictKube will be available on a permanent basis, and we’ll constantly pay attention to updating and developing this tool. Thus, users will be able to make predictions based on a generic AI model. Later on, we plan to add a Business paid plan for those who want to train their own model on specific data. But this part of the service is only in development for now.

Also, our community standup is next week on Tuesday. Would you be able to join it and share more on this scaler?

we will be happy to join you, tell you about PredictKube, and answer all your questions!


feat: Aptos Client

Pull Request type

Please add the labels corresponding to the type of changes your PR introduces:

Bugfix
Feature
Code style update (formatting, renaming)
Refactoring (no functional changes, no API changes)
Build-related changes
Documentation content changes
Testing
Other (please describe):

What is the current behavior?

Resolves: #NA
What is the new behavior?

Does this introduce a breaking change?

Other information

no method named disable_lifo_slot found for mutable reference happened when building the feat/aptos branch
we need to add
rustflags = ["--cfg", "tokio_unstable"]

to ./cargo/config.toml


Deleting a monitored system or faction from your profile requires a refresh to take effect

hey this has an easy work around but thought you'd want to know
Repro steps:

Go to https://elitebgs.app/profile/
click the trashcan icon on a system or faction
note it doesn't disappear from the list
go to https://elitebgs.app/
Note the deleted system/faction is still in the list
Refresh the page
Note it's gone from both the home and the profile

Thanks for the report. I will fix this at the earliest.

@SayakMukhopadhyay I just noticed this also happens when adding a system.
I'm on https://elitebgs.app/
Click add
Input a system
Submit
Notice system isn't added
refresh
note system appears


Browser Issues

Why you added only support for firebox.
Is there any issues with other Browser ?

At moment of release it was tested on Chrome, Firefox, and Safari.


Smaller (or less frequent) updates

Would it be possible to shrink the size of the Keybase client's updates? Or, if not, to update Keybase less often?
The Ubuntu client is updated a lot (through package repo). At between 50MB and 100MB this is eating a good amount of monthly bandwidth. When you have a data cap, you basically have to choose between not updating or uninstalling.

Some dpkg or incremental updates would be very welcome for Fedora.

I can confirm, that the update frequency is disturbing.
And if I ignore them, I miss important system updates, because my updater always notify me about an update....
I would like, if you only release the github releases via the repo.
Not the nightlys.


Updates to educator account creation

This PR resolves the issues in #24 by:

Remove the printout of the educator data at the bottom of the info form
Fix an issue where the "successfully submitted" card wasn't displaying
Redirect teachers to the "Manage Classes" page (rather than the classes page for students, which won't work for them

@patudom The text that gets displayed when the educator signup is complete is here


Create an official drupal-vm image on Docker Hub

Issue Type

Feature Idea

Summary
I think I may be able to get this working pretty simply once I merge in the support for Docker I'm working on in https://github.com/geerlingguy/drupal-vm/issues/1206
Basically, I'll need to:

Create a new GitHub repository for the image maintenance.
Build the image with a Dockerfile (default to all the standard Drupal VM defaults).
Add the image to Docker Hub
Find a way to get the Docker image build runs triggered by commits to Drupal VM (or maybe just tagged releases?). Could be manual for now, but I hate manual processes!

For later optimization, it would be good to explore things like:

Building the image using ansible-container so that each build step can be cached as a separate FS layer. It'll probably be a fairly substantial delta on each Drupal VM image build :/
Making different branches/tags for different things (e.g. Drupal core development, sprints, patch testing, contrib module testing... who knows).

@geerlingguy if you keep the Dockerfile in the main repo Docker Hub will auto build releases.
eg. https://hub.docker.com/r/beet/box/tags/

@thom8 - Hmm, good to know.
I might consider setting the official image to have a default share location (from the docker-compose file), and not have Drupal installed; then I could add a composer docker-quickstart or something like that, which would copy the compose file, grab the docker image, then run the playbook using current local settings against it to provision it with all the local configuration changes.

Have you considered using https://github.com/leighmcculloch/vagrant-docker-compose ?
At least in the short-term it might be easier to continue to use vagrant if it can continue to handle hosts file / networking etc.
Also it allows using env vars in docker-compose.yml which can be passed in via the Vagrantfile --
https://github.com/leighmcculloch/vagrant-docker-compose/blob/master/example/Vagrantfile#L20

@thom8 - heh, I like how in https://hub.docker.com/r/beet/box/tags/ the size of the image keeps going up a few MB per tag :D
I would like to stick with all-Docker or no Docker for now, but will take a peek at vagrant-docker-compose. It could be that Drupal VM transitions to that for some time, then fully jumps the shark if I'm ever more comfortable sticking my flag firmly in the Docker camp than in the Vagrant-for-local-environment camp.

I've added a basic image that will likely be a wee bit massive, since it's currently installing Drupal 8 via the Composer drupal-project, and includes the database and everything: https://hub.docker.com/r/geerlingguy/drupal-vm/
I am considering maybe maintaining two or three Dockerfiles—one with D8 installed and ready to go (for core hacking, patching, or demos, like Simplytest.me, and one without a Drupal site included, that's intended to be used for project work.
Finally, maybe a third that has all the installed_extras? Or maybe a more common set of them?
Some of my roles don't play as nicely as others in a container, though... so that's my hesitation in going too far too fast!

The builds were failing during the Varnish handlers, on the systemd reload task:
RUNNING HANDLER [geerlingguy.varnish : reload systemd] *************************

fatal: [localhost]: FAILED! => {"changed": true, "cmd": ["systemctl", "daemon-reload"], "delta": "0:00:00.213274", "end": "2017-05-13 05:25:28.171839", "failed": true, "rc": 1, "start": "2017-05-13 05:25:27.958565", "stderr": "Failed to get D-Bus connection: Unknown error -1", "stderr_lines": ["Failed to get D-Bus connection: Unknown error -1"], "stdout": "", "stdout_lines": []}

Ah, the infamous Failed to get D-Bus connection: Unknown error -1 :P
See the failed build log: https://hub.docker.com/r/geerlingguy/drupal-vm/builds/bquhnptr39lkim7yr7uutdy/
Also, working out some size comparisons locally to see if using Debian 8 for the Docker image is the best option (noting, of course, that until I get things more optimized, the bulk of the weight is in the top layer... meaning updates to the image will require people download ~800+ MB of filesystem 😕:

Distro
Image size

Debian 8
1.28 GB

Ubuntu 16.04
TODO

CentOS 7
TODO

Yay, there's a :latest image built on Docker Hub: https://hub.docker.com/r/geerlingguy/drupal-vm/
Going to test with my docker-compose.yml file to see what I can do quickly/easily. Then I may work on a second Dockerfile with no Drupal installation (empty database and empty codebase directories).

Hmm... I can't put the Dockerfile in a subdirectory and access the parent directory for resources during the build. See: http://stackoverflow.com/q/24537340/100134

After playing around with builds for a couple hours, I've determined it's close to impossible to get Docker Hub to run two automated builds on the same project—one with one Dockerfile, another with another Dockerfile in a subdirectory (since it switches build contexts and you can't do anything in parent directories).
It might be possible to get something set up through the Docker Cloud interface (instead of Hub), but that's a bit murky, as until about 30 minutes ago I had never even heard of Docker Cloud... and apparently there's some third registry out there like 'Docker Enterprise' or something that is even more involved.
Why they couldn't just have one central thing (like Hashicorp's Atlas) is beyond me. Seems like a lot of wasted/duplicate effort. Of course, what do I know... they also changed the entire underlying project's name to moby after 2,000+ issues in the docker namespace 😭

The image is up, and working, moving concrete action items over to #1366

Don't know about Hub to know if this helps, in regards to build contexts, docker now (recently) accepts -f - which lets docker participate in pipelines and pipe from stdin (See https://github.com/moby/moby/pull/31236 for some more info on it)

@derimagia - Yeah, unfortunately Hub/Cloud doesn't work the same way yet :(
I was testing with Dockerfiles in various locations and trying to get the Hub and/or Cloud configs to work with a Dockerfile outside of the repository root... and it works, but it then requires all the other config to be in subdirectories of the directory (context) where the Dockerfile resides.

@geerlingguy you could try using Travis / Circle for the image builds then push them to Docker hub.
That way you can move the provisioning scripts into the build context before running it.
Would recommend Circle as you can set it all up manually via SSH into the build container then just script it. I remember you mentioned Travis allows this too? couldn't find anything in the docs.

@thom8 - Maybe so... for now I want to keep it pretty low key until I find exactly how I want to make things tweakable. For selfish reasons, I'm working on making the base image something I can easily plug into all my personal sites I work on maybe a day or two every six months. Since it takes 10-20 minutes to bring up Drupal VM, I tend to batch my work on personal sites.
If I can get the Docker base image to work nicely with all of them and come up in a second or two (plus time to drush sql-sync the database from prod), that's a huge productivity boon and might allow me to actually maintain personal Drupal sites instead of only applying module and core updates :)

RE: https://github.com/geerlingguy/drupal-vm/issues/1356#issuecomment-299756754
docker compose support has been added to Vagrant 1.9.5
Could be a good bridge to a 100% docker stack.

Link to the PR in question:

https://github.com/mitchellh/vagrant/pull/8576/files
Docs: https://www.vagrantup.com/docs/docker/configuration.html

It definitely looks interesting!


fix: adapt biome formatting of package.json files to match the yarn one

Currently yarn and biome fight every time you install the dependencies/run the formatter.
The PRs adds an override to the biome config for package.json files to make the lineWidth 1 making biome always split into multiple lines the arrays in the json file

LGTM! But is there no way to ignore the package.json file like .prettierignore or something? If there is why not just tell Biome to ignore the package.json file?

We can put it in the ignore list so biome ignores it

Yeah I feel like telling Biome to ignore files auto-generated by other tools is better in this case


travis-ci is not working with openjdk

If openjdk7 is present in the jdk list of travis-cli configuration file (.travis.yml), there are problems executing sbt: https://travis-ci.org/angelcervera/pbf4scala/builds/147890346

Not necessary


RedisOptions: field name of base interface is already is use for name of master in SentinelConnector of ioredis

Because export interface RedisModuleOptions extends RedisOptions, field name is already in use by ioredis for name of master in SentinelConnector. You should use a different field for multi-client connection. Otherwise, it is not possible to create more than 1 client with Sentinel setup.

@skunight Please update on when this will be merged. I had to create a forked package as this is a critical issue.


Formatting is not working when prettier is set as the default formatter

When you set Prettier as the default formatter for all files in VSCode with the setting: "editor.defaultFormatter": "esbenp.prettier-vscode" formatting does not work in ReScript files.
I need to remove the default option and add Prettier per file type in order to make it work as expected.

Dunno, but I'll let other chime in if this is not the expected behavior. We aren't doing anything weird with the formatter settings

This should be front page of the docs, as it is with the prettier docs
https://github.com/prettier/prettier-vscode#default-formatter

Looks like following prettier docs is the root cause of mid configuration.

Yea the example values don't make a lot of sense, but the fact you can override the default is not easily found.
This is set from the GUI settings, which is what most people will click, and it will cover css, html, javascript, typescript, etc, so most people are probably be very satisified with that checkbox
  "editor.defaultFormatter": "esbenp.prettier-vscode",

But I've never seen an default override in the GUI settings, and I have no idea why a plugin can't override the default, so maybe just putting just this in the docs
you probably need to override the default formatter like this:

  "[rescript]": {
    "editor.defaultFormatter": "chenglou92.rescript-vscode"
  },

It might seem like a small thing, but when you are giving a new language a try, not even being able to get the formatting working is a little off putting.

Makes perfect sense. Would you draft a PR for the readme?

@kswope

Waiting on some feedback from my rant at https://github.com/microsoft/vscode/issues/126187

@kswope is this issue still relevant?

please close
As a compromise they added a helpful dialog box that asks for a formatter and saves it so users are less inclined to just set prettier as the default formatter for everything and break formatting for every lang that prettier doesn't support.

Thanks for the info!


Preview release for Core 2.0?

I have seen the 2.0 milestone (~50% complete) and know that right now 2.0 is not supported. We are porting to 2.0 as 1.1 doesn't have everything we need. Is there a timeframe on when a preview release may be available that would support 2.0? We will not be releasing core into production until end of year or next year (waiting for SignalR in Core) but we are trying to get as much hooked up as we can as soon as possible to see any problems or issues that are encountered.
Any information you have would be appreciated so we can plan out the work for supporting 2.0.
Thanks,
Steve

The same for me.
I started a project last week that will depend on SignalR. Do you have any prevision to release IdentityServer for .netcore 2.0?

I started a project last week that will depend on SignalR

You can use SignalR with .netcore 1.1 although I'm unsure if all the features are available.  I have a basic SignalR .netcore 1.1 app.  I'm no expert on SignalR but just wanted to check you knew it can be used.

@MatthewGabriel Thanks for replying. I believe that you are referencing the .Net Framework libraries on your app, right? So I guess that you loose portability. This is importante for me because my application will be deployed on a Linux enviroment. Please correct me if I'm wrong.

This nuget package is the one I'm using: .Net Standard 1.6: https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/Microsoft.AspNetCore.SignalR.Server

Ok, I'll test this package. Thanks.

This question was not about SignalR. I am looking for a preview of IdentityServer 4 to plug it in to a Core 2.0 app.

Sorry, I realise the question was about IdentityServer4 for Core 2.0.  I can't answer that accurately, but I don't think it is available yet.  I was giving an alternative path for you to follow in the meantime until a preview of IdentityServer4 for Core 2.0 is available.  Your actual question is better answered by someone closer to the project.

not yet - we are waiting for preview 2 of asp.net core 2.
tracked here: https://github.com/IdentityServer/IdentityServer4/issues/1055


WebHook testing example to HelloWorld repo, also WebSocket

Background

Recently in twitter a folk from CapGemini is looking for WebHook testing.

Tweet link: https://twitter.com/iamsoham/status/1090977861404631040

AT the face of it sounds like set of Http calls

Investigate if any further complexities involved
We can simply override the HttpClient to deal with WebHooks. Or even without it?

TODO in this ticket-

Add some HelloWorld examples to showcase the WebHook testing
Add some WebSocket examples to showcase the WebSocket testing

References-

The server side push event testing demo could help here if any async calls involved

@BeTheCodeWithYou can throw some light here or point to the examples as he has achieved this
Overriding HttpClient exmple can be linked here if that helps e.g. OAuth2 by @santhoshTpixler

Tweet has some details which sounds like achievable straigh away, but provide examples.

@sohamda

Couldn't find anything specific for webhook. Looking into the perspective of the chatbot, it is more like a conversation using HTTP calls. Let's say you ask something to a bot which is an HTTP request and the response would the answer from the bot.
The screenshots also portray the same.
Looks like he needs to spend some time in evaluating zerocode to find exactly what he is trying to achieve.

Folks, if any of you are doing WebHooks testing using Zerocode, would you mind putting an example JSON here?

:::Note:::
You can replace your business data-text with some interesting text like Pizza delivery

And, please provide a multi-step example so that it might help Mr Soham to visualize the scenarios.


Add metadata to manifest & warn on unknown fields

Use manifest buffer to create a map of TomlTree and find all the
unknown fields in the tree. Raise warnings for unknown fields.
For "metadata" field, ensure it's of map type, else raise warning.

Fixes #506

Changed validateManifest() return type to ([]error, error).
Added tests for validateManifest().

@sdboyer thanks to that extra bit, I found that the checks can be improved by just using type assertion. Once a property is TOML array of tables ([[some-name]]), TOML ensures that the content has to be map (key-value pair) :)
Added checks for invalid fields in [[dependencies]] or [[overrides]].

@darkowlzz hmm - looking at the TOML spec a bit, and poking at the PR, I'm confused - array of tables isn't actually the same thing as just a plain table, because you can specify them multiple times. And we don't want that to be possible - there should be exactly one allowed [metadata] section per area - whether that's at the top-level, or within each subtable (e.g. a [[dependencies]] subtable.
Related - let's also make sure a the test exercises the possibility of nesting metadata within e.g. a [[dependencies]].

@sdboyer great! now that makes things more clear :)

metadata is now a TOML table [metadata] (map).
metadata can be added within subtables of [[dependencies]] and [[overrides]], only as TOML table (map). Added the tests for the same.

Awesome, this looks great! Thanks so much 😄 🎉

It appears that this PR may have triggered a regression. Consuming the latest, I see:
# github.com/golang/dep
/go/src/github.com/golang/dep/manifest.go:109: undefined: internal.Logf
# github.com/golang/dep
/go/src/github.com/golang/dep/manifest.go:109: undefined: internal.Logf
/usr/local/bin/kube-tlssec-prep.sh: line 22: dep: not found
/usr/local/bin/kube-tlssec-prep.sh: line 23: dep: not found

From:
go get github.com/golang/dep

@mdelder it did indeed - thanks for responding quickly here. I'm updating things now.


⚠ Bofrost.lu has degraded performance

In 4d07229, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1032 ms

Resolved: Bofrost.lu performance has improved in 3d5bacc after 6 minutes.


http: add missing header

httpserver.cpp:73:10: error: ‘deque’ in namespace ‘std’ does not name a template type

Thank you! I see that this was added upstream as well.


Added Thunderbird galician

Hi @alexandregz , sorry for a small delay on your all casks here, could you please rebase latest commits from master and push again to see if it's passing all tests?
(that applies to the rest of your PRs here)
Thanks a lot for your patience and contributions to this project! :wink:

Ok, no problemo :+1:

I have sync my fork and then I have made rebase from master with this branch, but finally it appears "Merge branch" when I pull from remote. I don't know if that's correct, so I stop rebase until you can confirm that, plz.

I cherry-picked your change & merged separately (your contribution is still credited to you as git recognises committer and author) and also changed the license to MPL as that's afaik more precise.
Thanks.

thx!


Update readme by formatting installation steps

Don't forget to add the hacktoberfest-accepted if you wish to merge it

Thanks for the PR. hacktoberfest-accepted does not need to be added though, as the project itself is under the hacktoberfest tag.

@oof2win2 glad I could contribute to this amazing project


Adapted for nuxt3

First of all, amazing project, thank you for open source it.
I would like to know if you plan to adapt it so it can be used with nuxt3.
Thanks.

Thank you for your attention. There is no such plan in the short term.


Make jump to a bookmarked directory correctly

When specifying a directory path including environment valiables from bookmark, vim-startify executed lcd command passing its parent directory instead of the specified directory as the argument.
It was caused because isdirecotry() can not expand environment variables.
This fix simply adds expand() to the argument of isdirectory() when changing current directory.

First of all, thanks for the contribution, but could you please provide reproduction steps?
Putting filenames with environment variables in g:startify_bookmarks shouldn't work in the first place, since fnameescape() would quote $ or % characters. After that, expand() wouldn't work.
So, can you provide an example?


Highlighting Issue with Git and Diagnostics When Using barbar.nvim

I am experiencing an issue when using the Everforest colorscheme with the barbar plugin in Neovim. Specifically, when displaying Git and diagnostic information on the buffer line, unwanted highlighting appears.

After some investigation, I discovered that the background color for the affected areas is tied to palette.statusline1. I attempted to override this with the following code:
colours_override = function(palette)
  palette.statusline1 = palette.none
end

While this successfully removes the unwanted highlighting, it also affects the status line in lualine, setting it to none, which is not the desired outcome.
Would you have any suggestions on how to resolve this issue without impacting the lualine status line? Any guidance or advice would be greatly appreciated.

Fixed by #29


add animated class to Neon and Next

Issue: #1172

Great work thank you!
@all-contributors please add @kyawkyawsoezhu for code


disable consul in apollo-assembly by default

What's the purpose of this PR
disable consul in apollo-assembly by default
Which issue(s) this PR fixes:
Fixes #3581
Brief changelog
disable consul in apollo-assembly by default
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Read the Contributing Guide before making this pull request.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit tests to verify the code.
[x] Run mvn clean test to make sure this pull request doesn't break anything.

#3575

Codecov Report

Merging #3585 (09fbb5b) into master (d2059e6) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #3585      +/-   ##
============================================
+ Coverage     50.95%   50.99%   +0.04%
- Complexity     2324     2328       +4
============================================
  Files           447      448       +1
  Lines         13989    14006      +17
  Branches       1423     1424       +1
============================================
+ Hits           7128     7143      +15
- Misses         6373     6374       +1
- Partials        488      489       +1

Impacted Files
Coverage Δ
Complexity Δ

...llo/metaservice/controller/HomePageController.java
100.00% <ø> (ø)
2.00 <0.00> (ø)

...o/metaservice/service/DefaultDiscoveryService.java
100.00% <ø> (ø)
6.00 <0.00> (ø)

...lo/metaservice/service/ConsulDiscoveryService.java
100.00% <100.00%> (ø)
5.00 <5.00> (?)

.../apollo/internals/RemoteConfigLongPollService.java
77.10% <0.00%> (-1.21%)
28.00% <0.00%> (-1.00%)

Continue to review full report at Codecov.

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


X-Forwarded-For security issue

First of all, thank you for this project. I am using it. but there is HUGE security issue.
When I was testing my application, I by-passed throttle successfully and logged in after brute-force attack!
You are getting client ip address from X-Forwarded-For and this header can be manipulated. so I changed my IP address where in x-forward-for,  for every throttle limit.
Problem caused by HttpRequestExtensions.cs
be safe.

The HUGE risk is when you don't configure your reverse proxy to set that header, eg nginx proxy_set_header.
You can also implement your own client IP fetch logic here https://github.com/stefanprodan/WebApiThrottle#custom-ip-address-parsing


Add common math operators to Vector

Add basic operations as static methods and use them in the declared operators.

Dot
Cross
Normalize
Divide
Multiply
Add
Subtract
Negate
Length
LengthSquared
Zero
One
UnitX
UnitY

What does the pull request do?

What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[x] Added unit tests (if possible)?
[x] Added XML documentation to any related classes?
[x] Consider submitting a PR to https://github.com/AvaloniaUI/Avaloniaui.net with user documentation

Breaking changes

Fixed issues

Review would be great!
A few small things:

Should we simplify GetHashCode to use the tupled version ? (_x, _y).GetHashCode() insted of the unchecked block.
Should ReSharper specific comments/ignores be removed form the class ? (they were already there)

@kekekeks @Gillibald Could you review this PR please ? 🙂

@grokys @kekekeks @Gillibald Please review and merge :)

Thanks @JaggerJo, apologies for the delay.


feat(remix-server-runtime)!: use type aliases instead of interfaces

As requested by @brophdawg11 in https://github.com/remix-run/remix/pull/7362#issuecomment-1710730616, this PR converts all interfaces (both internal + exported) to type aliases

To transition more smoothly, we can start with exporting these public types with a V3_ prefix
This would be something like
export interface Cookie {
  // ...
}
export type V3_Cookie = Cookie;

Closing per https://github.com/remix-run/remix/pull/7362#issuecomment-1711703874


🐞 - missing scss

Code Example URL
no
Description
Hi,
i would love to add thi UI library to our upcoming huge project (and accross the company) but i would really like to use SCSS (I dropped already candidates like NG ZORRO because of sticking to less) and i thought that Taiga supports boths but for some reason there are only few sccs files up in node_modules folder but misssing files like
<EMAIL_ADDRESS><EMAIL_ADDRESS>is there a specific reason? Can I use it still or should i investigate other UI libraries?
Taiga UI version
latest
Browser Used
Chrome
OS Used
macOS

You can use it with SCSS, these are global styles and you can just add them to styles array in angular.json, Angular CLI will mix it with the rest of you SCSS styles just fine :)

when Angular is set to SCSS will it understand less files?
Also how then from within SCSS i can override less variables and themes?

Angular will understand it, yes. We do not use less variables, we use CSS variables and you can override them in CSS/SCSS, just make sure your overrides are added after our styles so they take precedence.

For example, add this CSS file to the end of styles array:
[tuiTheme="dark"] {
  --tui-text-primary: red;
}

:root,
[tuiTheme="light"] {
  --tui-text-primary: pink;
}

ok then
sry for asking questions here but there is not much documentations outside...
should whole app content should be wrapped into 	 and why? this is somehow feels starnge because i was expecting only to import components and use them. Is this because of overlayes like modal, notifications and others or?

Yes, it's for overlays and global scrollbar. Here's an article about it:
https://angular.love/demystifying-taiga-ui-root-component-portals-pattern-in-angular
It's a bit dated since we no longer have modules and cannot have NG_EVENT_PLUGINS built-in, but it will give you an overview of it. You can use Discussions section here for questions in the future, it's a better fit than issues ;)

Thank you for quick response. Looking forward to use.
btw i thought variables can be manipulated within styles.scss but appereantly only in app.component.scss because of taiga-root or?

It's really nothing special, just default CSS variables. Here's what you get in theme file that you hook up:
https://github.com/taiga-family/taiga-ui/blob/main/projects/core/styles/theme/palette.less
So if you do what I said above and add your styles after the theme in angular.json they would override built-in values. tui-root sets font: var(--tui-font-text-s), you can override it by anything you want, all of this is not really Taiga UI related, just basic HTML/CSS

Thanks

do you have input for password? cannot see it on your list...

one more thing - i have included default htema but after adding input i have this view

as you can see it is completely hidden until not focused and in css --tui-height-l is not defined.
Any suggestions how to fix it would be awesome :)

CSS variables for colors are listed here:
https://taiga-ui.dev/colors
Input for password is here:
https://taiga-ui.dev/components/textfield#interactive-icons
Textfields are currently being refactored so the documentation is not yet in its final form. Not sure about issues with links you speak of.
As for your last screenshot, maybe you've forgotten tuiTextfield directive on input?

no my last screen code looks like thi:

            p.s. will refactor be significant?

Add tuiTextfield directive to input tags.
Refactor is rewriting all controls from "legacy" package to that new tui-textfield.

Thanks

I have tried to override --tui-duration variable but it is overriden by inline style from tui-root. Any suggestions?

--tui-duration is a special case because it is used in both CSS and Angular Animations. To change speed of animations provide TUI_ANIMATIONS_SPEED, default is 1. We need to add that to the docs.

one more bug (i think)
i hav provider for button: tuiButtonOptionsProvider({ appearance: 'parama-button', size: 'm' }),
with size - m, but in style scheets i see

Please advice how to do password input with clickable icon (i cannot find in your exzmples). Thanks

?  I have asked about how to place clickable icon to  textfield 🙂

Upps. Missed that. Thank you.

please suggest appeareance for hint
i cannot find it here
https://github.com/taiga-family/taiga-ui/tree/main/projects/core/styles/theme/appearance

Also do you have solution for error labels under tui-textfield or it should be added manually?
If needs to be added manually  (not like tui-label inherits error styling) then maybe tui-textfield can emit state is it error or not?

can <tui-error [error]="computedError" /> automatically get erro from reactive form or from text-field state or i have to do manual map from form errors
`
protected error = new TuiValidationError('An error');
protected get computedError(): TuiValidationError | null {
    return this.enabled ? this.error : null;
}

`

Here's how you link tui-error to control:
<tui-error
  formControlName="myControl"
  [error]="['first-priority-error', 'second-priority-error', ...] | tuiFieldError | async"
/>

You can use empty array [] if you do not care about what error takes precedence. You can use any control directive to link error to control, [formControl]/formArray/formGroup...

Let's move each separate question to its own discussion from now on so it can help others and not throw it all into this issue.

And this first-priority-error i assume like required, min-length etc?

Yes, in case it has multiple errors – which one you should show in that order

thats strange. After i added
<tui-textfield class="gap-1-5x">                         <input tuiTextfield formControlName="username" />                     </tui-textfield>                     <tui-error formControlName="username" />
i got this error
core.mjs:7188 ERROR RuntimeError: NG01203: No value accessor for form control name: 'username'. Find more at https://angular.dev/errors/NG01203     at _throwMissingValueAccessorError (forms.mjs:3419:9)     at setUpControl (forms.mjs:3201:29)     at _FormGroupDirective.addControl (forms.mjs:5319:5)     at _FormControlName._setUpControl (forms.mjs:6010:39)     at _FormControlName.ngOnChanges (forms.mjs:5959:28)     at _FormControlName.rememberChangeHistoryAndInvokeOnChangesHook (core.mjs:3978:10)     at callHookInternal (core.mjs:5007:10)     at callHook (core.mjs:5034:5)     at callHooks (core.mjs:4991:9)     at executeInitAndCheckHooks (core.mjs:4946:5)
p.s. without tui-error it works.. am i missing something?

Because you forgot [error]="[] | tuiFieldError | async". The tuiFieldError pipe is the consumer of formControlName, you cannot use reactive control with some sort of value accessor.

i did not just thought since it is empty then not nessecarry.|
it solves error problem but styling is not applied:
`
<tui-error formControlName="username" [error]="[] | tuiFieldError | async" />
tuiHintOptionsProvider({ appearance: 'parama-hint' }),
[data-appearance='parama-hint'] {
@include transition(all, var(--duration));
color: #fff;
background: linear-gradient(43deg, #4158d0 0%, #c850c0 46%, #ffcc70 100%);
font-weight: bold;

}
`
what am i missing?

Probably your styles have lower specificity. This isn't really Taiga UI related, you would need to investigate in devtools. Here's a demo for your case:
https://stackblitz.com/edit/angular-m95psp


Connectivity between NOMIS in Azure and NOMIS Test in Mod Platform

User Story
Connectivity between NOMIS in Azure and NOMIS Test in Mod Platform
See thread here:
https://mojdt.slack.com/archives/C01CLTGTXT7/p1641826667005700
Following guidance here - https://docs.google.com/document/d/1Z9ddlu5XDAq6B6_uH2isKbcntx-nod5abNENc72wRv0/edit
We can enable connectivity with the following:

[x] MP TGW egress route back to NOMIS VNETs
[x] MP Firewall rule to allow traffic from NOMIS VNETs
[x] MP NACLs rules updated to allow traffic from NOMIS VNETs
[ ] Security group changes on the Instances in MP that are being connected to
[ ] PTTP TGW egress route back to NOMIS VNETs

Ingress routes to the hmpps-test VPC are already present.
NOMIS Azure CIDR range - <IP_ADDRESS>/16
Ports required - 22, 1521, 3872, 4983, 5556, 7001 and 7777

Value
Enable connectivity between NOMIS Azure and Test NOMIS MP
Questions / Assumptions

Definition of done

[ ] above changes made
[ ] another team member has reviewed
[ ] tests are green

Reference
How to write good user stories

Connectivity has now been established and tested for port 1521, any additional ports needed we can easily add to the firewall as part of bau


[SPARK-29680][SQL] Remove ALTER TABLE CHANGE COLUMN syntax

What changes were proposed in this pull request?

This patch removes v1 ALTER TABLE CHANGE COLUMN syntax.
Why are the changes needed?

Since in v2 we have ALTER TABLE CHANGE COLUMN and ALTER TABLE RENAME COLUMN, this old syntax is not necessary now and can be confusing.
The v2 ALTER TABLE CHANGE COLUMN should fallback to v1 AlterTableChangeColumnCommand (#26354).
Does this PR introduce any user-facing change?

Yes, the old v1 ALTER TABLE CHANGE COLUMN syntax is removed.
How was this patch tested?

Unit tests.

Test build #113006 has started for PR 26338 at commit 91c8e58.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17929/
Test PASSed.

Test build #113006 has finished for PR 26338 at commit 91c8e58.

This patch fails SparkR unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AlterTableChangeColumnStatement(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113006/
Test FAILed.

Test build #113122 has started for PR 26338 at commit a432da7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18036/
Test PASSed.

Test build #113123 has started for PR 26338 at commit 05f0584.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18037/
Test PASSed.

Test build #113122 has finished for PR 26338 at commit a432da7.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AlterTableRenamePartitionStatement(
case class AlterTableDropPartitionStatement(
case class OptimizeLocalShuffleReader(conf: SQLConf) extends Rule[SparkPlan]

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113122/
Test FAILed.

Test build #113123 has finished for PR 26338 at commit 05f0584.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113123/
Test FAILed.

Test build #113192 has started for PR 26338 at commit 17a34c2.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18105/
Test PASSed.

Test build #113192 has finished for PR 26338 at commit 17a34c2.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113192/
Test FAILed.

Test build #113237 has started for PR 26338 at commit fb7564a.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18148/
Test PASSed.

Test build #113238 has started for PR 26338 at commit 9e7a678.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18149/
Test PASSed.

Test build #113240 has started for PR 26338 at commit ac76822.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18151/
Test PASSed.

Test build #113238 has finished for PR 26338 at commit 9e7a678.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Test build #113237 has finished for PR 26338 at commit fb7564a.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113238/
Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113237/
Test FAILed.

Test build #113245 has started for PR 26338 at commit 64a68fc.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18156/
Test PASSed.

Test build #113240 has finished for PR 26338 at commit ac76822.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class AlterTableSerDePropertiesStatement(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113240/
Test FAILed.

Test build #113245 has finished for PR 26338 at commit 64a68fc.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113245/
Test FAILed.

retest this please.

Test build #113249 has started for PR 26338 at commit 64a68fc.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/18160/
Test PASSed.

Test build #113249 has finished for PR 26338 at commit 64a68fc.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113249/
Test FAILed.

Test build #113275 has started for PR 26338 at commit b2acddb.

Test build #113275 has finished for PR 26338 at commit b2acddb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/113275/
Test PASSed.

thanks, merging to master!


combining non-infinite, centerMode, and variableWidth causes an error

https://jsfiddle.net/20bumb4g/906/

var settings = {
infinite : false,
variableWidth: true,
centerMode: true
}

this combination of settings causes an error when you attempt to go out of bounds

Duplicate of #357


Python error when trying to transform docker-compose

I'm installing it as shown in docs:
pip install container-transform
Collecting container-transform
  Downloading container-transform-1.1.4.tar.gz
Requirement already satisfied: PyYAML<4,>=3.10 in /Library/Python/2.7/site-packages (from container-transform)
Requirement already satisfied: Jinja2>=2.7.0 in /Library/Python/2.7/site-packages (from container-transform)
Collecting click>=3.3 (from container-transform)
  Downloading click-6.6-py2.py3-none-any.whl (71kB)
    100% |████████████████████████████████| 71kB 2.2MB/s
Requirement already satisfied: MarkupSafe in /Library/Python/2.7/site-packages (from Jinja2>=2.7.0->container-transform)
Building wheels for collected packages: container-transform
  Running setup.py bdist_wheel for container-transform ... done
  Stored in directory: /Users/danny.heinrich/Library/Caches/pip/wheels/f3/44/e8/c8034b152a761279d741568098c3eee2ccbbcf776a49c161a8
Successfully built container-transform
Installing collected packages: click, container-transform
Successfully installed click-6.6 container-transform-1.1.4

It installs successfully but after running it as shown in docs it gives me:
cat docker-compose.yml |container-transform -v
Traceback (most recent call last):
  File "/usr/local/bin/container-transform", line 7, in <module>
    from container_transform.client import transform
  File "/usr/local/lib/python2.7/site-packages/container_transform/__init__.py", line 3, in <module>
    from .converter import Converter
  File "/usr/local/lib/python2.7/site-packages/container_transform/converter.py", line 3, in <module>
    from .compose import ComposeTransformer
  File "/usr/local/lib/python2.7/site-packages/container_transform/compose.py", line 6, in <module>
    from .transformer import BaseTransformer
  File "/usr/local/lib/python2.7/site-packages/container_transform/transformer.py", line 36
    class BaseTransformer(object, metaclass=ABCMeta):
                                           ^
SyntaxError: invalid syntax

System: macOS Sierra
Version: 10.12.1
HW: MacBook pro early 2015

This is a python 3 only project. You can either install with python 3 or use the docker image


WIP: Multi cradle

This patch isn't ready yet as it shows the API is slightly wrong in a few places. Specifically the dependencies API is not quite right, the CradleAction should also return the dependencies rather than being a separate function I believe so it can also depend on the FilePath as the dependencies may be totally different per component.
Example config.
cradle:
   multi:
    - path: "./"
       config: { cradle: {cabal: {component: "lib:hie-bios"}} }

Also it will be useless given the current behaviour of ghcide which just always passes the empty pass to the cradle. When it starts passing a more nuanced path and supports multiple components then this configuration may be more useful.

Seems pretty plausible, although I'm not convinced what the right answer is in this space.

Can you elaborate what you think the right answer is?
One definite non-answer is smashing together lots of components into a single component. It doesn't work in general so it is not a robust solution.
Another non-answer is placing a hie.yaml file in the subdirectory of each component. Reason, the hie.yaml file has to be placed at the project root so commands operate in the correct context.

I think smashing together lots of components is essential for a good user experience.
Why not have multiple hie.yaml files and then include a root tag on them, to say where the project is rooted? I am currently adding multiple distinct hie.yaml file support to ghcide, and I think it's a very important feature.

Because then you have to litter your build tree with lots of these configuration files. It's also not always the case that a component is contained entirely within one directory. Having a single configuration file which points to each component is easier to understand and specify.

Should have been clearer - what you are proposing is not unreasonable, basically we need to know for a given file which HscEnv to use, and which HscEnv's are really the same HscEnv so we can allow cross-imports for them. If this interface can provide that (and it definitely seems like it can) then great.

I think it can @ndmitchell
In my mind it is just like your solution of specifying multiple hie.yaml files but you do so in one file (and give a prefix) rather than committing the files to each subdirectory.
@fendor Can you have a look at this? I had to modify how the dependencies worked.

I also don't want to merge this until ghcide will work properly with multi cradles. It that requires changing the API slightly then I'm happy to do that but I can't easily predict what might need to change.

It's really hard to answer the question of what ghcide wants until we all come to a common answer on the question of whether we should try and fudge multiple components into a single GHC Session. I'm going to discuss this with Alan next week.
Currently we make the assumption that each hie.yaml shares the same cradle. That's not essential, and can be changed. What we do need is two methods:
fileToState :: FilePath -> IO state
stateToSession :: state -> IO Session

The rough rule should be that calling fileToState repeatedly doesn't repeatedly call configure etc afresh. If two files share the same state value we should only need to create one session for both of them.

Let me try to summarize my take on multiple components:

I think we can all agree that multiple components need to be supported and the default behavior must work out of the box without user intervention (at least in a reasonable number of cases).
I am not sure if everyone agrees on this but imho users must be able to choose to load everything as a single component. For Bazel-style monorepos where you have tons of small components, I don’t think loading them separately is a reasonable option. (Note that I’m not saying this must be the default.)
For cabal/stack projects (in particular outside of large monorepos which ime are mostly used in commercial development), the number of components is reasonably small so both approach are reasonably and there are arguments for both.
Loading everything into a single component has the advantage that reloads are faster and memory usage should be slower. It also matches what you have to do to get ghci working across cmoponents so we aren’t really entering new territory here. (That stops being true to some degree once we start making flags per files and only share the package state). The obvious downside is that it doesn’t work if the flags are incompatible. What exactly “incompatible” means here depends on whether we make some flags (like default-extensions) per-file instead of per HscEnv or not. I’m leaning towards the former but given that you have to make them compatible anyway for ghci to work I don’t think the second option is unreasonable. It also requires us to figure out a somewhat reasonable way of merging flags, maybe the logic in stack ghci is a reasonable option.
Loading things into multiple HscEnvs has the obvious upside that it should work in more cases (I think it’s still not entirely save at least for 8.6 since some state like the RTS linker is global and not per-HscEnv). The downsides correspond to the upsides of using a single component, i.e., slower reloads and slower. It also requires us to implement automatic restarts of components. Adding this to ghcide without automatic restarts will lead to lots of confusion so I’m not willing to do that.

Overall, while I think both approaches are reasonable, I prefer loading everything into a single component (as the default, I’m perfectly happy to make this configurable) but I’m happy to be convinced here. In particular, I would be interested in projects where loading things into a single component will fail and isn’t easily fixable (e.g., by adding a package import to disambiguate if you have different deps with colliding module names for two components).

Thanks @cocreature and @ndmitchell, great comments.
I was considering this question a bit this weekend. If we take the simple example of a cabal project:

The solver will create a consistent plan for the whole project so that each (ie components have to depend on the same version of a package (I believe))
If this is the case, then you can use one HscEnv for the entire project and compile to module separately and modify the DynFlags as appropriate.
Therefore we could still assume that one hie.yaml meant one HscEnv.

I am still quite nervous this would work correctly so I would like to be convinced by a working implementation! I think my reluctance on this matter has stemmed from limitations of using ghc --make where it would certainly not be possible to implement this in a robust manner! It is a big advantage of ghcide to reimplement downsweep and make it possible to have more finegrained control over each module's compilation.

Sounds like we're reaching agreement - awesome. I think the next step is to write something that can load a cabal project in a custom way with different flags per component etc and prove this approach works in practice. Once we have that proof of concept we can then know what is required to move forward.

@fendor This needs a review please. I split the refactoring of dependencies into a different commit so the introduction of multi cradle is now in its own commit.
It occurred to me that by far the most common way to configure this will be to specify many cabal or stack cradles and in order to align with the assumption of only having one HscEnv, that might be the only sensible way to configure your project. Therefore the current implementation might be too general.

I changed the implementation of canonicalizeCradles based on your suggestion.


Add LICENSE to be part of release archives

Since the name dropped its txt extension, it was no longer included.

Same as #518

closing as duplicate of #518.

@volter thanks ... but ocefpaf was faster ;)


Misc improvements

Refactored file names and imports

Enforce file name format

Initial work on reconnect support

[x] I have read the Contributing Guidelines

Yay for reconnect support! 🎉

@macjuul We just ran into an issue of our backend losing the connection to the database, and the backend had no way to even tell us about that. Anything using queries was just stuck indefinitely. We'd be super stoked about reconnect support. But is there anything we can do in the meantime until this gets merged? Even just being able to have a timeout that would let us know the connection is lost would be a big improvement.

@macjuul We just ran into an issue of our backend losing the connection to the database, and the backend had no way to even tell us about that. Anything using queries was just stuck indefinitely. We'd be super stoked about reconnect support. But is there anything we can do in the meantime until this gets merged? Even just being able to have a timeout that would let us know the connection is lost would be a big improvement.

We are still debating on the internal implementation of a reconnect system, however in Surrealist I implemented this manually by subscribing to disconnect events and instantiating a new connection. Until official support is available this is likely the best approach

@macjuul Ooh, I never knew there was an .emitter to hook in to! I don't know if you're able, but could you point me in the right direction where you implement the manual reconnection in surrealist? I'm banging my head against the wall trying to figure it out. Or might you be able to share your implementation @phisch ? Thanks for the help and sorry for the bother!

@ntorrey I can't share my implementation, but something along the lines of this should get you started:
const connection: Surreal = new Surreal();

async function connect() {
	await connection.connect(env.SURREALDB_URL, {
		namespace: env.SURREALDB_NAMESPACE,
		database: env.SURREALDB_DATABASE_NAME,
	});
}

connection.emitter.subscribe(ConnectionStatus.Connected, async () => {
	console.log("Connected to database!");
});

connection.emitter.subscribe(ConnectionStatus.Disconnected, async () => {
	connect();
});

connect();

I also handle browser online/offline state changes, have a connect retry-strategy with backoff in there and some more. But this should be a working start.

@phisch Thank you for the response! I started tinkering and have more questions - I guess this isn't really the place for this, so I'll just ask on discord. Thanks again though!

Reconnect functionality has been superseded by #385


Add one line palindrome check

This function ignores case as well.
I didn't want to modify the existing implementation, but can do so if requested.

We already have this algorithm covered! https://github.com/AllAlgorithms/python/blob/master/strings/palindrome.py
If you still would like to make a change to the algorithm that we already have, you can open a PR.


Error in CMS website when there is no webpage created from dashboard.

Error in CMS website when there is no webpage created from dashboard.
Instead of error message it should show something appropriate stating no webapges have been created yet.

Working on it.

Fixed.


Allow Floating Windows To Revert To Original Position After Un-Fullscreening

Description
As of v0.34.0, when a floating window (dragged so half of it is outside the display) is put into fullscreen and un-fullscreened, it reverts to its original position. This is no longer true following commit https://github.com/hyprwm/Hyprland/commit/813af393f1b61ecd0105e126681986e58e73ffee .
Judging from the name of the commit, I suspect this may be intended (thus the feature request). If this is the case, is it possible to add an option to toggle this behavior? I use this to multitask games that take up the entire screen. Thank you!

duplicate #4388


[BUG]: Dialog does not trap focus

Issue description
I was using the documentation page: https://baklava.design/?path=/docs/components-dialog--documentation

Open the dialog
Hit tab repeatedly
Focus will move outside the dialog to the page in the background

This is not good behavior, and something that is handled properly by <dialog>, which I notice this component does not use.
Media & Screenshots
No response
Baklava Version
No response
Operating system
No response
Priority this issue should have
Medium (should be fixed soon)
Please review the checkboxes that are applicable.

[ ] This issue is directly related to React

I tried to solve this issue with some methods but there are problems:
1- We can solve focus trapping by listening keyboard events when dialog is opened. If we set first and last focusable element in dialog, we can keep tab and shift+tab focusing behaviour only in bl-dialog component. But the problem is we can't get focusable elements properly because of shadow dom. Yes of course we can just get close and done buttons in dialog but there can be another focusable elements inside dialogs content area.
2- Another solution is using inert attribute. When bl-dialog is opened, we can add inert attribute for everything except opened bl-dialog. Inert attribute make an element as non-focusable/disable. But the problem is shadow dom and parent-child hierarchy in this solution. For example if bl-dialog under a parent div and it has siblings, we shouldn't set parents of bl-dialog as inert, we should only set its siblings.

Native dialog element has no have a this problem.
polyfilled="false" attribute solve this problem.


InfluxDB v1.8 :  CONTINUOUS QUERY executes at midnight (UTC), but i need it at midnight in my timezone!

INFLUXDB v1.8 need to perform a CONTINUOUS QUERY daily at midnight local timezone, but it really executes at midnight UTC !!
The problem is, my hourly and daily data gets written a hour later exactly (in summertime 2 hours later) and so my CONTINUOUS QUERY for monthly sum is missing the data of the last day (it executes every 1st day of month at 00:00:05 via systemd-timer and bash script).
How to write the CQ in that way it works at the right (LOCAL TIME) as expected?
My CQ is:
CREATE CONTINUOUS QUERY "CQname" ON "DBname" BEGIN SELECT cumulative_sum(non_negative_difference(last("total")))/60000 AS "Mess_kWh" INTO "DB2name"."autogen".:MEASUREMENT FROM "shellies" WHERE "ip" = 'SHELLYip' AND "time" > now()-1d GROUP BY time(1d) END
The logging shows:
Mär 01 01:00:00.177896 SERVERname influxd-systemd-start.sh[1373]: ts=2024-03-01T00:00:00.177804Z lvl=info msg="Executing query" log_id=0mkaFIEW000 service=query query="SELECT cumulative_sum(non_negative_difference(last(total))) / 60000 AS Mess_kWh INTO DB2name.autogen.:MEASUREMENT FROM DBname.autogen.shellies WHERE ip = 'SHELLYip' AND time >= '2024-02-29T00:00:00Z' AND time < '2024-03-01T00:00:00Z' GROUP BY time(1d)"
( I know the variable ${__timezone} has the correct timezone (CET or CEST). But how to insert it into the CQ command? )

You can set an offset: https://docs.influxdata.com/influxdb/v1/query_language/explore-data/#advanced-group-by-time-syntax
I believe a CQ runs off the time (and timezone) of the server influxd is running on.


Port dropped if no trailing slash with Keycloak

Bug Description
First, I've tried to reproduce it with just httpbin, but the problem wasn't there. But I can reproduce it with ease when I deploy our stack to a namespace, so I'll try to describe it with details. FYI, everything works perfectly with side-car injection disabled / without istio.
We have, in a dedicated namespace, two applications (app & keycloak). app tries to reach keycloak using a standard service name and the following url http://keycloak:8083/keycloak.
The keycloak service looks like this:
apiVersion: v1
kind: Service
metadata:
  name: keycloak
spec:
  ports:
  - name: keycloak
    port: 8083
    protocol: TCP
    targetPort: 8083
  selector:
    component: keycloak

The problem is, if app tries to call keycloak using http://keycloak:8083/keycloak, it gets a 503 error.
If I analyse envoy logs, I see the following:
[2023-03-16T14:37:35.541Z] "HEAD /keycloak HTTP/1.1" 303 - via_upstream - "-" 0 0 5 4 "-" "-" "dd993e16-b2a6-922f-bfac-573fac8e55cd" "keycloak:8083" "<IP_ADDRESS>:8083" outbound|8083||keycloak.ge.svc.cluster.local <IP_ADDRESS>:55856 <IP_ADDRESS>:8083 <IP_ADDRESS>:45380 - default
[2023-03-16T14:37:35.559Z] "HEAD /keycloak/ HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 0 9999 - "-" "-" "662fc0f7-0c47-9df2-9afd-650716461084" "keycloak:80" "<IP_ADDRESS>:80" PassthroughCluster - <IP_ADDRESS>:80 <IP_ADDRESS>:55614 - allow_any
[2023-03-16T14:37:45.686Z] "HEAD /keycloak HTTP/1.1" 303 - via_upstream - "-" 0 0 4 3 "-" "-" "c492dc9d-c841-920d-9f4d-6480158b60e0" "keycloak:8083" "<IP_ADDRESS>:8083" outbound|8083||keycloak.ge.svc.cluster.local <IP_ADDRESS>:55856 <IP_ADDRESS>:8083 <IP_ADDRESS>:45380 - default
[2023-03-16T14:37:45.692Z] "HEAD /keycloak/ HTTP/1.1" 503 UF upstream_reset_before_response_started{connection_failure} - "-" 0 0 9999 - "-" "-" "7ce81d7b-c0de-9fe8-b7fc-411b59904c63" "keycloak:80" "<IP_ADDRESS>:80" PassthroughCluster - <IP_ADDRESS>:80 <IP_ADDRESS>:55614 - allow_any
[2023-03-16T14:37:55.944Z] "HEAD /keycloak HTTP/1.1" 303 - via_upstream - "-" 0 0 5 5 "-" "-" "c0843aee-acf7-9dc0-be08-4bb572ebd4e8" "keycloak:8083" "<IP_ADDRESS>:8083" outbound|8083||keycloak.ge.svc.cluster.local <IP_ADDRESS>:55856 <IP_ADDRESS>:8083 <IP_ADDRESS>:45380 - default

So the port is dropped, for an unknown reason, envoy uses keycloak:80 instead of keycloak:8083.
If I use cURL from within the app container, I see the same result:

We clearly see the 303 which drops the port and redirect to http://keycloak/keycloak/ instead of http://keycloak:8083/keycloak/.
FYI, I see the following in keycloak proxy logs:
[2023-03-16T14:44:56.133Z] "GET /keycloak HTTP/1.1" 303 - via_upstream - "-" 0 0 4 3 "-" "curl/7.83.1" "ab0fe9dc-f6a1-941c-99c0-819e1a10fb83" "keycloak:8083" "<IP_ADDRESS>:8083" inbound|8083|| <IP_ADDRESS>:60261 <IP_ADDRESS>:8083 <IP_ADDRESS>:37728 outbound_.8083_._.keycloak.ge.svc.cluster.local default

Another strange thing (🤯) is if I change the url to http://keycloak:8083/keycloak/ (with the trailing /), this is working fine.
I think keycloak behavior is altered by the proxy, but I can't say what. Even if it's not a bug in istio/envoy, I chose to open a bug just to keep track of it because Keycloak is a well known project used by a lot of people.
Keep in mind this is working perfectly without istio/envoy injection.
Version
$ ./istio-1.17.1/bin/istioctl version
client version: 1.17.1
control plane version: 1.17.1
data plane version: 1.17.1 (11 proxies)

$ kubectl version --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.25.4
Kustomize Version: v4.5.7
Server Version: v1.25.6+k3s1

Additional Information
Keycloak version: 20.0.2

But it's working like a charm without Istio…
but I'm ok with you @howardjohn, especially because I've not been able to reproduce it with httpbin.
I suspect an header, injected by Istio creates this behavior. Any idea how I can investigate on this?
Because it works fine without Istio, I really think some side effects in the middle caused this.

That location: header is definitely coming from keycloak, unless you configured an Istio VirtualService to do the redirect (I don't think so).
So Istio may be mutating the request in some way that causes keycloak to them send the wrong location header, but that is going to be hard to figure out without understand of keycloak's logic.

No stale


Transformers (porting from Kolasu)

Our standard way to express mappings from parse tree to AST and AST-AST in Starlasu
https://github.com/Strumenta/kolasu/blob/master/core/src/main/kotlin/com/strumenta/kolasu/transformation/Transformation.kt

It supports multiple mappings for a parse-tree node (the current method does not), and it is possible to chain more transformations
It’s the natural place for collecting semantic issues instead of storing them as error nodes in the AST.
Note: also showcase in the hello world project and explain on Slack if needed

We will work on porting from Kolasu of a transformer from the parse tree to AST as a part of this task on the week from the 16th Jan.


tests, infra-test, Adapt infra_test to support dual stack

Adapt tests in infra_test.go to check dual stack if exists using DescribeTable.
None

/hold
since this PR depends on 2 other PRs (cherry-picking them until they are merged),
see notes in the PR description please which are unique for this PR.

/lgtm

Just rebased, didnt take new 4306 yet. because the changes there still dont affect the unique commit of this PR.

Recherry-picked 4306, tested the new logic works both when IPv6 is skipped or when its not (to see it detect the error)

Recherry-picked 4306

/lgtm

Please add description to the PR.

Please add description to the PR.

Done, once 4306 will be lgtm approve, i will cherry-pick again.

Recherry-pick 4306

Answered comments, PTAL

/approve

/lgtm

/hold cancel

Rebased, just in order to update tto the merged hashes
@RamLavi can you please re-lgtm ?

/lgtm

/retest

/retest

/retest


I'd like to take over this package

Hi @hemanthrajv ,
I'd like to take over this package. I will maintain it and add features. If this is agreeable to you, please transfer this repo to https://github.com/lukepighetti and add<EMAIL_ADDRESS>to the uploaders.
Thanks,
Luke

No idea in transferring as of now, sorry.

No problem, best of luck!


Example for Llama PebbloSafeReader

This PR Includes
Llama PebbloSafeReader Examples
PebbloSafeReader examples with basic readers including Llama

CSVReader
PDFReader
DocxReader

README.md
Documentation for PebbloSafeReader including

Enviornment setup
Script execution

Note
Required PyPI package llama-index-readers-pebblo is not yet released. To build and install it locally

Remove package llama-index-readers-pebblo from requirements.txt
Clone repo https://github.com/yograjopcito/llama_index.git
Run command pip install <Cloned_repo_path>/llama_index/llama-index-integrations/readers/llama-index-readers-pebblo

@yograjopcito can you attach pebblo report for these three readers?

@yograjopcito

I tried installing llama-index-readers-pebblo using the steps you shared in the PR description, but it's not present in the master/main branch. Please mention the branch name.
Please include the steps to install llama-index-readers-pebblo in the readme until it's released. We can remove them later once it's released.

It's also possible to include the GitHub link as a dependency in the requirements file instead of manually cloning, building, and installing:
Syntax:
git+https://github.com/username/repo.git@branch#subdirectory=path/to/package

E.g:
llama_index==0.10.27
langchain==0.1.14
shortuuid==1.0.13
docx2txt==0.8
git+https://github.com/yograjopcito/llama_index.git@ys-llama-pebblo-integration#subdirectory=llama-index-integrations/readers/llama-index-readers-pebblo

@Raj725 Addressed review comments. Please have a look


Coverage-based fuzzing for block processing, (de)serialization

Motivation

We currently test block (de)serialization and processing to a degree with structured property-based testing and unit testing. Structured proptests utilize test data that is correct, up to a point. While this is useful testing, we do want to cover more edge cases and abstraction/assumption mismatches.
This ticket is a lower priority, because block headers are fixed-length and reasonably simple.
Solution

We'd like to set up a coverage-based fuzzing harness to exercise block (de)serialization and processing. Fuzzing helps find logic and correctness bugs, even in a memory-safe language like Rust.
cargo-fuzz is the defacto standard tool, it wraps libFuzzer and has support for other fuzzing libraries, and builds well into a cargo crate/workspace.
They have a handy book to get started. There is also recent support for something closer to proptests, with structure-aware fuzzing.
auto-fuzz-test exists, but may collide with our use of proptest::Arbitrary or make code difficult to parse for humans.
We should at least:

[ ] Have a test harness for shoving random bytes into Block implementations of ZcashDeserialize, From, etc

We can run this coverage are purely part of our CI, or we can consider integrating our fuzzing harnesses into oss-fuzz, for free, continuous fuzzing.
Alternatives
Keep pushing non-coverage-guided random data though code paths with our proptest framework. This may get us less bang for our buck.
Related Work
Merging the coverage data from coverage-based fuzzing with the rest of our test coverage data is possible, as they use the same llvm internals under the hood, ~but may be annoying~ should be easy with CodeCov, could be considered out of scope for this ticket.
https://github.com/ZcashFoundation/zebra/issues/2298 is very similar.

This is a useful test, but it's not urgent.


add quart_borg reveal.js template

Link to suggestion
https://github.com/morrisLuke/quart_borg
Targeted section
Templates/Presentations
Describe your suggestion
This Mork Borg-inspired slide theme was built for Quarto users to build Reveal.js slides with the color scheme from an unhealthily apocalyptic and metal tabletop role-playing game.
Checklist

[X] checked if your suggestion is not already listed in Awesome Quarto list.
[X] checked if it can fit in an existed section or suggest a new section and explain why your item does not fit into one and what would be the interest of your new section.
[X] checked when it's a repository if it's maintained (archived repository will be rejected).

Thanks for the suggestio!
Unfortunately I can't add this as it is not a template per se.
See https://quarto.org/docs/extensions/listing-revealjs.html and https://quarto.org/docs/extensions/formats.html.


[MNT] Create workflow to test lower bound versions of dependencies periodically

Describe the issue
Our CI will always try to install the latest version it can. We have a lower bound on some dependencies, but theres no guarantee that these previous versions still work. Setting up a workflow to test these will make it easier to determine if we need to add compatibility for previous dependency versions or raise the upper bound.
Suggest a potential alternative/fix
No response
Additional context
No response

@MatthewMiddlehurst, is anyone working on this?

Very late, but no 🙂


feat(#45): --init with fsl

closes #45
History:

feat(#45): --bootstrap
feat(#45): state
feat(#45): server trait
feat(#45):
feat(#45): --init
feat(#45): puzzle
feat(#45): --init

PR-Codex overview
This PR primarily focuses on enhancing the server functionality by introducing a new ServerWithInitState that allows initializing the server with a specific state file or directory. It also refactors the server structure, changing how servers are instantiated and started.
Detailed summary

Added init argument to detach command in cli/src/args.rs.
Updated integration tests to check for --init option.
Refactored server instantiation to use DtServer instead of Server.
Introduced ServerWithInitState for initializing the server with a state.
Modified start method to support async operations in DtServer.
Added MIT License headers to new modules.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@h1alexbel Thank you for your contribution! Here's your point breakdown: +4 base points, +9 for 180 hits-of-code, -16 for no code review, and -4 for insufficient comments (only 1). As per our policy, we've adjusted your total to +4 points to meet the minimum reward. Your current balance is +43. Please remember the importance of code reviews and comments for future contributions. We appreciate your work and encourage you to keep submitting high-quality code!


[reactive-element] asynchrony between shadowRoot creation and initial update can be problematic

Which package(s) are affected?
Lit Core (lit / lit-html / lit-element / reactive-element)
Description
ReactveElement calls createRenderRoot synchronously in connectedCallback which creates an empty shadowRoot by default. The initial update typically renders DOM into this shadowRoot is performed asynchronously, by default at microtask timing.
This creates a period of time which is less than a paint by default, in which an element's children will not render since they are inside an empty shadowRoot. In practice this is almost never problematic, but it is the precipitating issue for https://github.com/lit/lit/issues/4786. A focused element can become unfocused.
In addition, Lit allows updates to be scheduled at user defined timing by implementing scheduleUpdate. If this is done such that a paint can occur between updates, the empty shadowRoot can cause a detectable layout change (shown here with a ResizeObserver).
Reproduction
https://lit.dev/playground/#gist=3ecd7930758e2355dd3089e726e00d6d
Workaround
Forcing the initial update to be synchronous avoids this behavior:
connectedCallback() {
  super.connectedCallback();
  if (!this.hasUpdated) {
    this.performUpdate();
  }
}

Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
Lit 3.x
Browser/OS/Node environment
All

Alternatively, the initial update could be made synchronous. We've previously considered this but decided against it to avoid introducing a special timing behavior for initial rendering.

We don't do this because of the cascading initialization problem. If a child sync renders, then the parent sets properties, the child will have to render again. Then the grandparent sets properties and the parent and child have to render again...

I think we need something like https://github.com/WICG/webcomponents/issues/1055 in order to get interoperable sync rendering without the cascade problem.

We don't do this because of the cascading initialization problem. If a child sync renders, then the parent sets properties, the child will have to render again.

The proposal was for sync initial update and unless I'm mistaken I think we could safely do this without introducing a cascade because initial template updating happens before the node is appended. I definitely think this needs careful consideration, but it does seem like something we could safely consider.

If the child also sync renders, or if the parent async render, you get the cascade problem, right?

I opened an issue on the scheduling API for near-sync (nanotask, CE react) tasks. I think ideally we have a way to move to sync, batched rendering across the board.

If the child also sync renders, or if the parent async render, you get the cascade problem, right?

Lit sets everything before connecting so I don't see how this would be a problem with Lit. For integration with other libraries, it wouldn't be a cascade, but it could cause 1x extra update depending on ordering...
// set then append
const foo = document.createElement('x-foo');
foo.prop1 = 5;
foo.prop2 = 6;
document.body.append(foo);
// updates once: now async, proposed sync.

// v. append *then* set (Lit itself does not do this)
const foo = document.createElement('x-foo');
document.body.append(foo);
foo.prop1 = 5;
foo.prop2 = 6;
// now: updates once async.
// proposed: updates 2x, once sync, once async.

Just to follow through on the other idea here which is to avoid synchronously creating the renderRoot. As noted previously, this is tricky because of the expectation that renderRoot exists before controllers' hostConnected is called. It might be ok to call hostConnected async after creating renderRoot in the update cycle. This isn't super pretty but would be something like...
connectedCallback() {
    // current
    // Create renderRoot before controllers `hostConnected`
    //(this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=
    //  this.createRenderRoot();
    this.enableUpdating(true);
    // new: gate on renderRoot existing
    if (this.renderRoot !== undefined) {
      this.__controllers?.forEach((c) => c.hostConnected?.());
    }
  }

disconnectedCallback() {
  // new: gate on renderRoot existing
  if (this.renderRoot !== undefined) {
    this.__controllers?.forEach((c) => c.hostDisconnected?.());
  }
}

performUpdate() {
  if (!this.hasUpdated) {
    // current...
    // this.renderRoot ??= this.createRenderRoot();
    // new...
    if (this.renderRoot === undefined) {
      this.renderRoot = this.createRenderRoot();
      if (this.isConnected) {
        this.__controllers?.forEach((c) => c.hostConnected?.());
      }
    }
  }
  // ...
}

I wonder about which is a bigger change: not having a render root when controllers are connected, or delaying controller connectedness?
I could see controller that add event listeners to the host failing to catch events if we delay controller connectedness.

I could see controller that add event listeners to the host failing to catch events if we delay controller connectedness.

That's a good point. Context does this but the processing is all in controllers so I think the delay would be fine there, but there's definitely a brittleness and it would be a problem if an element fired an event in connectedCallback that a controller on an ancestor expected to hear.
We could just avoid creating the renderRoot or try to be fancy and make it a getter (which would at least localize the damage). I don't think that helps much since sometimes people would just try to access shadowRoot instead of renderRoot.
Sync initial render seems cleaner if also slightly risky. Do you acknowledge that any behavior perf change there would only be for non-typical lit rendering use?

What if we queue the fix for this up for Lit 4.0?

What if we queue the fix for this up for Lit 4.0?

#4786 strikes me as really in need of a fix. The fact that our exact rendering technique has a negative interaction with something as fundamental as focus is a pretty big foot gun. Let's discuss at next eng meeting.

Note, this behavior occurs when an un-slotted element is focused and subsequently slotted. This means this can occur after initial render as a result of slot assignment.


Minify + Shrink resources removes String resources

Obviously this is the case, and it can be fixed by keeping the R class, but I was wondering if there is hopefully a better alternative somehow. -keepresources looked promising but it seems to be a dexguard feature rather than a proguard feature.
In comparison, keeping all the R classes adds around 60kb to a < 3mb app, which is somewhat significant.

I had success with this:
-keepclasseswithmembers class **.R$* {
    public static final int define_*;
}

This only keeps the definitions used by AboutLibraries for autodetection but no other Strings.

@rubengees but wouldn't this also remove the strings of the libs themself? So do you add them manually to your project in addition?

Hmm, no it works out of the box in my case. Maybe proguard intelligently recognize the usage by the library? I do not use shrinkResources, but only proguard itself though.

Shrink resources is the issue, not proguard

It can't as those are loaded during the runtime. So this means your definition still keeps the resources.
@AllanWang I do not think there is anything I can do about this, or the lib can do about it.

Just tried it with shrinkResources enabled on my project, that works.

@rubengees is your project open sourced?

Also since this keeps the whole R class, I'm not sure if this will be better than the original rules

Yes, here here are the proguard rules: https://github.com/proxer/ProxerAndroid/blob/master/app/proguard-rules.pro

Also since this keeps the whole R class, I'm not sure if this will be better than the original rules

I am not a proguard expert so this may be true. It did help me avoid the 65k field reference limit though,  which popped up due to another lib (I only had the rule to keep entire R from the README before).

@AllanWang
From the proguard documentation:
-keepclasseswithmembers [,modifier,...] class_specification
Specifies classes and class members to be preserved, on the condition that all of the
specified class members are present. For example, you may want to keep all
applications that have a main method, without having to list them explicitly.

I think that means that entire R does not get keeped.

@rubengees I think it means that it does, since the only constraint is that a class contains a define_ string and its preserving the entire class rather than just some members. I'm still waiting for travis to build so I can decompile it later. Plus I think the reason it works with define_ is because the rest of the class is kept, otherwise all your library_ strings will be gone too.
(Not a proguard expert either, so what you're saying is ideally what I want to happen)

The only thing which can be maybe done in the future is to split up the core, and move all libraries to a different module. So you can either use the module with all the resources, or you manually add the resources you want

I just decompiled my app and the R file is really small. I think it works the way we want to (I could be mistaken of course).

@rubengees just drag&drop the apk onto Android Studio 3.0, it has a really cool visualisation, and also shows the contained resources

@mikepenz The issue still stands with all the external libraries with their strings,
Using the rules defined above definitely cleans it a fair bit though, since it seems to remove all the appcompat resources.
My R class with from 6k variables to 3k, and About library went from 3709 to ~300.
For the app, the size

with the proguard above is 3.92
without proguard is 3.98
with proguard and no R restrictions is 3.91

well I can't do anything about external libraries.
The only reason the R class has to be kept is for the auto-detection. You can enable proguard, don't add the rule, and just manually set which libraries needs to show up

Our cases are for proguard + shrink + no auto detection. Because without this rule those strings will be gone anyways. I don't think any changes need to be done on your end since it's fine the way it is, but perhaps the proguard lines can be added to the readme for those who want to shrink their resources as much as possible and are willing to input libraries manually.
Thanks rubengees!
-keepclasseswithmembers class **.R$* {
    public static final int define_*;
}

@AllanWang My pleasure :)
@mikepenz I could send a PR if you like.

@rubengees already writing the README update :)

https://github.com/mikepenz/AboutLibraries/blob/develop/README.md#proguard
Thank you @rubengees & @AllanWang


⚠ Bofrost.de has degraded performance

In 607aef1, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1000 ms

Resolved: Bofrost.de performance has improved in 5917d35 after 6 minutes.


sign up updated

#1073

I have updated code in sign up.html by adding the header and footer and have made proper styling to the page.
the above picture contains the updated header content

the above picture contains updated footer section.
please merge this pullrequest along with the labels of gssoc level3
thanking you
Raj Mehta

@sunny0625 please merge it I have done it and updated code please add the required labels i.e. gssoc and level3

solve conflicts.


Locust Improvements of various sorts

We've been developing a fork of Locust for the last couple months and have added various features. Some highlights:

HTTPS compatibility via SSL_KEY and SSL_CERT environment variables to specify the SSL/TLS cert and signing key. Useful for securing web communication. There's potential for PII to passed the web interface and the monitoring user (via endpoints being listed in the HTML tables).
Added web auth on site via LOCUST_USERNAME and LOCUST_PASSWORD environment variables.
Unique IDs assigned to locusts. Each locust of a given type will be assigned a unique id. This can enable differentiating behaviour between other locusts (i.e. querying credentials from a file based on the locust id).
Added a --run-time flag to support headless testing (such as via CI build system) where a predefined run-time can be specified.
Added a --slave-count flag to support headless testing in distributed mode. Once slave_count slaves connect, distributed locusts will begin hatching. Again, this is useful for CI build system testing.
Some bug fixes:
-- adding **kwargs to some event handlers.
-- don't reset api stats on hatching complete - reset on new test instead.
-- num_clients flag now actually used.

Please offer and suggestions / comments / improvements / criticisms.

We'll need to address this test failures before merging. It's on our todo list.

@HeyHugo : We're looking to see if this set of changes is desired by the locust team. I realize there's a lot here to review, but we'd like to contribute our changes back upstream. Let us know how to proceed with this? I.e. is it needed to be broken up into smaller chunks? Are there changes / features you'd like excluded from the PR?

Cool, thanks for the contributions! However let me redirect the questions to @heyman who is more active in this project.
A note on resetting the stats on hatch complete - I think this is the desired behavior, otherwise the statistics data will be mixed with both higher and lower load.

@HeyHugo Thanks for the info. I thought resetting on hatch would be your desired behaviour. For us, what was happening was that we were slowly ramping up our load via a low hatch_rate. When we reached the user count, the stats were reset causing that data to be removed. We actually wanted the mixed low and high load data as we considered that data valuable. Notably, we were doing authentication calls as the first task and by waiting until all locusts were hatched, we were throwing out all the authentication endpoint tracking.
I think other users may want the mixed load results to be maintained as well, so maybe this could be set as a flag given to the locust command?
@heyman Any thoughts on this?

Hey!
Sorry for not replying to this earlier. I've been very busy, and simply haven't had the time to review the whole thing.
Overall, I'm very positive to the changes, though I think it might be better, if possible, to separate a few of these features into separate issues/pull requests.
Here are a few thoughts so far:

HTTPS compatibility via SSL_KEY and SSL_CERT environment variables to specify the SSL/TLS cert and signing key

Sounds great! Should be noted in the documentation.

Added web auth on site via LOCUST_USERNAME and LOCUST_PASSWORD environment variables.

My main issue here would be that during all development of Locust so far, no way of interfacing with it has been intended to be "public", and the way to secure Locust has been to simply restrict access to the machine/ports altogether (e.g. by using firewall rules). Therefore, providing an authentication feature for the web UI,  might give users the impression that it's safe to expose Locust to the public, which is currently not the case for the master/slave communication ports. This could perhaps be solved by a clear warning in the docs. We would also need tests that covers this.

Unique IDs assigned to locusts. Each locust of a given type will be assigned a unique id. This can enable differentiating behaviour between other locusts (i.e. querying credentials from a file based on the locust id).

I like the feature, but have only glanced over the implementation. It's not obvious to me how it currently works. How does it handle when parts of the user instances are killed, and when new are spawned? Some tests covering this feature would  be nice, and perhaps a few more comments in the code around the LocustIdTracker.

Added a --run-time flag to support headless testing (such as via CI build system) where a predefined run-time can be specified.

Great! This is something I've intended to implement.

Added a --slave-count flag to support headless testing in distributed mode. Once slave_count slaves connect, distributed locusts will begin hatching. Again, this is useful for CI build system testing.

This is also great!

I think other users may want the mixed load results to be maintained as well, so maybe this could be set as a flag given to the locust command?

Yes,  I think the best would be to have this configurable. There's an open issue for it here: #205
Some other things:
Perhaps it would be useful to be able to specify a directory path for where the CSV files go. The presence of such path could then control if files should be created or not. Also, maybe it would be easier to - instead of incrementing numbers - just use the current epoch time in the filenames?
What's the use for send_relay_msg? I couldn't see that it was actually used anywhere (thought I might have missed something). Do you use it for some kind of communication between the slave nodes from within your test scripts?
 Also - even though I know PEP8 says differently - I prefer to keep the indentation level for empty lines within blocks. My main reason is that one can then copy and paste functions and methods into the console if needed.
Anyway, these are my initial thougths. I think it looks very promising. Thanks!

@heyman Thanks for the great feedback. We'll look to address your comments over the next week or so as time permits. I think I agree on pretty much every point you made. The send_relay_msg is for what you suspect, node-to-node communication. We actually dropped the use of this feature in favour for running a thread concurrent to (and owned) by an existing locust (and thus I'll likely remove the change from this PR since they're even untested on our end). You may have noticed the new die method passed from the runner down to the locust and ultimately to the taskset. This die method is where we actually clean up this thread since it can exist independently of the locust (and thus be orphaned) once created.
I'll come up with some documentation / examples that will hopefully answer your questions shortly.
Thanks again!

@heyman : I've broken up this commit into a bunch of smaller pieces and will close this PR. Please review the individual commits when you get a chance. I'll address any additional issues you raise.


Sample line positions and draw with depth test disabled broken

Run http://localhost:8080/Apps/Sandcastle/index.html?src=Clamp to Terrain.html&label=All and select Sample line positions and draw with depth test  It will crash with normalized result is not a number

Works in 1.51: https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/?src=Clamp to Terrain.html&label=All
So this is a regression we should fix ASAP.


C++ client: string_t to string

Remove most usages of utility::string_t and replace with std::string

@BrennanConroy please rebase and triage failure in ConnectionCanSendAndReceiveDifferentMessageSizesWebSocketsTransport. If that failure is definitely not related to your PR, just skip it and file a bug to review (tag me in that bug)


slide names ending with numbers are breaking

Right now, https://datatracker.ietf.org/meeting/115/materials/slides-115-dnsop-the-alt-special-use-top-level-domain-draft-ietf-dnsop-alt-tld-18 404s. It shouldn't.
https://datatracker.ietf.org/doc/slides-115-dnsop-the-alt-special-use-top-level-domain-draft-ietf-dnsop-alt-tld-18/ works fine, and from there, you can get to https://datatracker.ietf.org/meeting/115/materials/slides-115-dnsop-the-alt-special-use-top-level-domain-draft-ietf-dnsop-alt-tld-18-00.pdf
The issue is likely the document name ending in something that looks like a version.

cc @paulehoffman


A test

@kulibali I ran a test to see if only using a single thread would impact on the windows failures. As you can see, it doesn't.

@kulibali I ran a test to see if only using a single thread would impact on the windows failures. As you can see, it doesn't.


Queue of validation generator in fit_generator

Hi,
I am using fit_generator with a data_generator for validation_data.
The code is:
history=model.fit_generator(generator=generator_trai,steps_per_epoch=200,epochs=2,validation_data=generator_val,validation_steps=15)
I set validation_steps=15. Because of the default queue_size of 10 I expect the generator to add 25 batches to the queue in the first epoch. 15 of 25 for doing the validation in the first epoch and further 10 for filling up the queue. So far so good. But I am wondering why the generator adds futher 25 batches in the second epoch. In my opinion it should only add the 15 batches that are used for validation in second epoch.
Why is this happening?
The Training Generator works as supposed. Adding 210 batches in first epoch and futher 200 batches in second epoch.
Thanks in advance.

I think this happens because the queue for the validation data is recreated at the end of every epoch, as you can see in https://github.com/keras-team/keras/blob/0d66dc4252f56bec1214874dbf766bdbb2c9ac10/keras/engine/training.py#L2163
I would suggest to actual create the Enqueuer for the validation outside of the loop over epochs.
If there are no objections, I will prepare a pull request.

Can we reopen this issue?  I am experiencing extremely slow evaluation times using the following configuration:
model.fit_generator(gen_train,
                    validation_data=gen_val,
                    validation_steps=1,
                    steps_per_epoch=1,
                    epochs=epochs,
                    verbose=1,
                    callbacks=[cb_tens, cb_checkpoint, cb_early_stop],
                    use_multiprocessing=False,
                    workers=1)

Additionally, looks like ab97958 failed and therefore this issue has not fixed.


Horizontal timelines and hours

It seems that horizontal timelines don't render correctly hours.
I tried to use the inline template added using plugin command but it seems that any event, I introduced are rendered by midnight to midnight, ignoring the hour information. So basically the event below is collapsed in a line.
<div class="ob-timelines"
	data-title="TestRange"
	data-description="Range"
	data-color=""
	data-type="range"
	data-start-date="1450-01-01-01"
	data-end-date="1450-01-01-16"
	data-tags="testtag">
	 Event description
</div>

I checked the documentation and it seems fine to me but I'm just starting to work on your plugin.
To render the horizontal timeline is used the following tags.
ob-timeline
tags=korkinam
startDate=1449
endDate=1451
minDate=1449
maxDate=1451
zoomInLimit=day
zoomOutLimit=32140800000
type=flat

Is it a know limitation?

This has been fixed in release 2.1.6
Turns out I didn't correctly update the function that created the values vis-timeline needed for event dates to account for the hours when I redid the dates elsewhere.
Thanks for bringing this up

This one just to confirm that the issue has been fixed.
Thanks a lot for the very quick fix!