js9_config freeze when selcting YOUR SSH KEY

Installation information

jumpscale version: 9.3.0
operating system: linux

Detailed description
Once we try to edit  YOUR SSH KEY the editor freezes
Steps to reproduce
open js9_config
use arrow key to try to edit the YOUR SSH KEY field

I have more information about the bug.
It seems that I don't have the micro editor installed in my system.  And editing the SSH field seems to try to open it. So jumspcale tries to download it in the background (without any notification to the user that this is happening, which i find bad, but that's another problem) and fail to do so.
Here is the stack trace:
Traceback (most recent call last):
  File "/usr/local/bin/js9_config", line 8, in <module>
    j.tools.develop.run()
  File "/opt/code/github/jumpscale/core9/JumpScale9/tools/develop/DevelopTools.py", line 23, in run
    app.run()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/apNPSApplication.py", line 30, in run
    return npyssafewrapper.wrapper(self.__remove_argument_call_main)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/npyssafewrapper.py", line 41, in wrapper
    wrapper_no_fork(call_function)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/npyssafewrapper.py", line 97, in wrapper_no_fork
    return_code = call_function(_SCREEN)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/apNPSApplication.py", line 25, in __remove_argument_call_main
    return self.main()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/apNPSApplicationManaged.py", line 172, in main
    self._THISFORM.edit()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/fm_form_edit_loop.py", line 86, in edit
    self._widgets__[self.editw].edit()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgtitlefield.py", line 119, in edit
    self.entry_widget.edit()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgtextbox.py", line 383, in edit
    self.get_and_use_key_press()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgwidget.py", line 610, in get_and_use_key_press
    self.handle_input(ch)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgwidget.py", line 92, in handle_input
    if self.parent_widget.handle_input(_input):
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgwidget.py", line 95, in handle_input
    if self.parent.handle_input(_input):
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgwidget.py", line 80, in handle_input
    self.handlers[_unctrl_input](_input)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgNMenuDisplay.py", line 199, in root_menu
    self._NMDisplay.edit()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgNMenuDisplay.py", line 93, in edit
    _return_value = _fctn(*_args)
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/wgNMenuDisplay.py", line 39, in _executeSelection
    return sel()
  File "/usr/local/lib/python3.5/dist-packages/npyscreen/muNewMenu.py", line 76, in do
    return self.onSelectFunction(*self.arguments, **self.keywords)
  File "/opt/code/github/jumpscale/core9/JumpScale9/tools/develop/DevelopConfig.py", line 69, in editConfigFileJS
    j.tools.prefab.local.apps.microeditor.install()
  File "/opt/code/github/jumpscale/prefab9/modules/apps/PrefabMicroEditor.py", line 26, in install
    url=url, to='$TMPDIR/micro/', overwrite=False, retry=3, expand=True, removeTopDir=True)
  File "/opt/code/github/jumpscale/prefab9/modules/network/PrefabTools.py", line 31, in download
    expand=expand,minsizekb=minsizekb,removeTopDir=removeTopDir)
  File "/opt/code/github/jumpscale/prefab9/JumpScale9Prefab/PrefabCore.py", line 562, in file_download
    "Could not download:{}.\nFile size too small after download {}kb.\n".format(url, fsize))
JumpScale9.errorhandling.JSExceptions.RuntimeError: ERROR: Could not download:https://github.com/zyedidia/micro/releases/download/v1.3.3/micro-1.3.3-linux64.tar.gz.
File size too small after download 0kb.
 ((type:runtime.error)
Could not download:https://github.com/zyedidia/micro/releases/download/v1.3.3/micro-1.3.3-linux64.tar.gz.
File size too small after download 0kb.

can't reproduce


Scheduling does not work with transactional outbox and Quartz

Contact Details
<EMAIL_ADDRESS>Version
8.x
On which operating system(s) are you experiencing the issue?
Windows, MacOS, Linux
Using which broker(s) did you encounter the issue?
RabbitMQ
What are the steps required to reproduce the issue?
1. Configure PublishMessageScheduler
2. Configure Quartz
3. Configure EF Outbox
4. Schedule a message for recurring delivery using the specified schedule (ScheduleRecurringSend)

What is the expected behavior?
I expect that the specified schedule is used for recurring delivery the message.
What actually happened?
The scheduled message is scheduled normally, but the message isn`t sent according to the specified schedule.
Related log output, including any exceptions
No response
Link to repository that demonstrates/reproduces the issue
No response

Lack of information, closed.


Question: How to install without top_level.txt? (eg: Wheel generated by: flit)

https://github.com/ywangd/stash/issues/370

Sorry I don't know the details in pypi. So maybe we can just list all the file in the *.whl except the dist-info file and just move all files to site-packages?

This could be a solution. But we should not ignore top_level.txt if it does exists, so maybe use this as a fallback if the file does not exists.
This change would affect $STASH_ROOT/lib/stashutils/wheels.py. There is a class called TopLevelHandler, if you want to make the change.
I will look a bit more into the wheel format to check of there is a more specific rule for this case.

https://paste.ubuntu.com/p/SHpzz32qTp/   I changed 174-185


store: out-of-order label set

We've ended up with data that can't be verified nor fixed in our data store. I'm currently in the process of delving deeper in this problem with a more up to date Thanos (v0.5). The problem happened while we where running 0.4.
The symptom is:
01D9S32REZD25B65AN54FVX44F: out-of-order label set
{
  <omitted json - available on request>
} for series 813726

We think it may have to do with receiving a metrics that had an_identical_ label with a value only differing in case.
We still have a copy of the data, and, as said, I'm in the process of narrowing down what actually happened.
This looks like #711, which is fixed, so I wonder why we've hit it.

Are you running Prometheus which has this fix https://github.com/prometheus/prometheus/pull/5372 included?

No, this was def. on an older version. From the looks of it, this is included in 2.9.x ?
With that fix in Prometheus, does there still need to be something in Thanos? I.e. I want to re-inject the metrics we have into our metrics store. Is that possible?

Well new Thanos gives ability to ignore this error, so it just warns. It is slight inefficiency, but that's it. Are you blocked with this?
Also it looks like compactor warns / errors out if debug.accept-malformed-index is not set to true, not store right?

Thanks. No not blocked. Good to know we can ignore the error, which gives us more defence in depth
Think this can be closed with WAI

@miekg closing as per your request but what's the meaning of WAl in this context? 😄


Installation procedure

Guess I just need to add workflows to create the packages and will include them in the next release.

https://github.com/fnkr/github-action-ghr seems legit

Ugh I still don't know how to release.

Okay so I did this:

pushed to release branch and got artifact zip from pkg_release wokflow
unzip artifact.zip
installed github cli https://github.com/cli/cli/blob/trunk/docs/install_linux.md
got a token from https://github.com/settings/tokens
exported the GH_TOKEN environment variable as that value
ran gh release upload v0.1.5 fildesh* -R fildesh/fildesh


test: Test upgrade from v1.3 to master

Test upgrades from v1.3 to master, instead of from v1.2 to master, as we no longer support upgrade from v1.2.
Fixes #7187

This change is

test-nightly


Let access response headers and trailers separatedly

And keep providing a NSDictionary view of both merged, for those who don't care about the difference.

This was fixed by PR #2914


Add error handling class to controllers

Type of PR

[ ] Documentation changes
[x] Code changes
[ ] Test changes
[ ] CI-CD changes
[ ] GitHub Template changes

Purpose of PR
Put Controller error handling in a class
Review notes

Would like opinions on the use of this.controller.name
Is the class in the right place or should it be a service

Issues Closed or Referenced

Closes # (this will automatically close the issue when the PR closes)
References # (this references the issue but does not close with PR)

Closing in favor or a more accurate branch name


impl PartialOrd, Ord for ProcessUniqueId

For use as a key in BTreeMap and various other reasons.

Thanks.


Enhancement to support ufw allow from ip

Hello @shinebayar-g,
Thank you for sharing this script. Here an enhancement suggestion to support commands like this one :
ufw route allow proto tcp from <IP_ADDRESS>/24 to <IP_ADDRESS> port 80.
As I mentioned in this issue on chaifeng/ufw-docker repo it requires docker version >= 19.03.4
Usage :  docker run --name nginx -p 80:80 -d -l UFW_MANAGED=TRUE -l "UFW_FROM=<IP_ADDRESS>/32;<IP_ADDRESS>/24" nginx
Here the modified ufw-docker-automated.py script :
#!/usr/bin/env python
import subprocess
import docker
from ipaddress import ip_network

client = docker.from_env()

def manage_ufw():
    for event in client.events(decode=True):

        event_type = event.get('status')

        # container network is attached on start or stop event
        if event_type == 'start' or event_type == 'kill':
            container = None
            try:
                container = client.containers.get(event['id'])
            except docker.errors.NotFound as e:
                continue
            container_network = container.attrs['HostConfig']['NetworkMode']
            container_ip = None
            container_port_num = None
            container_port_protocol = None
            ufw_managed = None
            ufw_from = None

            container_port_dict = container.attrs['NetworkSettings']['Ports'].items()

            if container_network != 'default':
                # compose network
                container_ip = container.attrs['NetworkSettings']['Networks'][container_network]['IPAddress']
            else:
                # default network
                container_ip = container.attrs['NetworkSettings']['Networks']['bridge']['IPAddress']

            if 'UFW_MANAGED' in container.labels:
                ufw_managed = container.labels.get('UFW_MANAGED').capitalize()

            if 'UFW_FROM' in container.labels:
                try:
                    ufw_from = [ip_network(str(_sub)) for _sub in container.labels.get('UFW_FROM').split(';')]
                except ValueError as e:
                    print(f"Invalid UFW label: UFW_FROM={container.labels.get('UFW_FROM')} exception={e}")
                    ufw_from = -1
                    pass

            if ufw_managed == 'True':
                for key, value in container_port_dict:
                    if value:
                        container_port_num = list(key.split("/"))[0]
                        container_port_protocol = list(key.split("/"))[1]

            if event_type == 'start' and ufw_managed == 'True':
                for key, value in container_port_dict:
                    if value:
                        if not ufw_from:
                            container_port_num = list(key.split("/"))[0]
                            container_port_protocol = list(key.split("/"))[1]
                            print(f"Adding UFW rule: {container_port_num}/{container_port_protocol} of container {container.name}")
                            subprocess.run([f"sudo ufw route allow proto {container_port_protocol} \
                                                from any to {container_ip} \
                                                port {container_port_num}"],
                                           stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True,
                                           shell=True)
                        elif isinstance(ufw_from, list):
                            for subnet in ufw_from:
                                print(f"Adding UFW rule: {container_port_num}/{container_port_protocol} of container {container.name} from {subnet}")
                                subprocess.run([f"sudo ufw route allow proto {container_port_protocol} \
                                                    from {subnet} to {container_ip} \
                                                    port {container_port_num}"],
                                            stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True,
                                            shell=True)

            if event_type == 'kill' and ufw_managed == 'True':
                ufw_length = subprocess.run(
                    [f"sudo ufw status numbered | grep {container_ip} | wc -l"],
                    stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True,
                    shell=True)

                for i in range(int(ufw_length.stdout.strip().split("\n")[0])):
                    awk = "'{print $2}'"
                    ufw_status = subprocess.run(
                        [f"sudo ufw status numbered | grep {container_ip} | awk -F \"[][]\" {awk} "],
                        stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True,
                        shell=True)

                    ufw_num = ufw_status.stdout.strip().split("\n")[0]
                    print(f"Cleaning UFW rule: {container_port_num}/{container_port_protocol} of container {container.name}")
                    ufw_delete = subprocess.run([f"yes y | sudo ufw delete {ufw_num}"],
                                            stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True,
                                            shell=True)

if __name__ == '__main__':
    manage_ufw()

Depending on the behavior you want when UFW_FROM contains invalid IPs, you can change ufw_from from -1 to None. But it's safer by default not to add any ufw rules in this case.
If someone is wondering how to catch those error logs in /var/log/syslog.
You can modify ufw-docker-automated.service file under the [Service] section :
Environment=PYTHONUNBUFFERED=1
ExecStart=/usr/bin/python3 -u /usr/lib/mylib/ufw-docker-automated.py

(Note: sudo is not required)

Hi, @mlollo actually I use that syntax extensively in my private network. It's a nice enhancement indeed. Please fork the repo and create a Pull Request, that way we can see exactly what changes are coming.

Also I would like to open another PR to discuss about the possibility to filter outgoing traffic only for containers.
As you know many docker are exposed on the internet and are subject to botnet attacks such as crypto bots.
It would be a nice to have feature to be able to filter outgoing traffic from the docker container with two more labels : UFW_OUTGOING_DENY=true and UFW_TO=<IP_ADDRESS>/24:8080/udp;<IP_ADDRESS>/24:443/tcp;<IP_ADDRESS>/24:443;<IP_ADDRESS> and
Here we can keep the label UFW_FROM=<IP_ADDRESS>/24 with those ufw rules :
ufw route allow proto tcp from <IP_ADDRESS>/24 to <IP_ADDRESS> port 80
ufw route allow proto tcp from <IP_ADDRESS> port 80 to<IP_ADDRESS>/24

As you can see we need to allow container to reply back to the client.
And now you can allow UFW_TO IPs :
ufw route allow from <IP_ADDRESS> to <IP_ADDRESS>/24 port 8080 proto udp
ufw route allow from <IP_ADDRESS> to <IP_ADDRESS>/24 port 443 proto tcp
ufw route allow from <IP_ADDRESS> to <IP_ADDRESS>/24 port 443
ufw route allow from <IP_ADDRESS> to <IP_ADDRESS>

And then after specifying all allow rules you can block outgoing traffic with :
ufw route deny from <IP_ADDRESS> to any

Notes : I never recommend to expose directly docker or any application directly on the internet, I advise to add reverse proxy + firewall in front of those services. This is why this feature can be interesting.

I just merged the PR. I like the suggestion of use of deny outbound rules. Looks like you already have some work on that. Please create another PR if you want 😃


fixes #340 - "none" value set to null, formatValueToField checks fo…

fixes #340 - "none" value set to null, formatValueToField checks for isNil(value) and returns null, none options are always disabled

updated tests to reflect "none is always disabled", could possibly be a selectOptions to allow users to select the "none" option to clear a previously selected value?
added formatValueToField and return null when isNil(value)

Merged with master, bringing in changes from PR #363  and #364

Thanks. You can merge it.


implement verification and processing of health authority diagnosis v…

…erification certificates.
Next step in #349
This adds 2 new database tables

HealthAuthority - represents an individual health authority
HealthAuthorityKey - represents key versions. Each time a new signing key is issued, the public key and corresponding version will need to be inserted into this table.

AuthorizedApps can now be scoped to a set of HealthAuthorities. This allows for there to be multi diagnosis verification authorities within a state (Say a university medical system and state dept. of health).

This is NOT hooked up to the live API yet.
Happy path tests only

/cc @peetsasaki

/lgtm

@sethvargo is it part of the scope for #349 and #493 that an HA would be able to approve/verify a Payload by the user to be published/uploaded or not. To avoid false payloads to be ingested into the system without an HA approving it ?


Feature add agg_state define and ddl support

Proposed changes
add agg_state define and ddl support.
  create table a_table(
      k1 int null,
      k2 agg_state max_by(int not null,int)
  )
  aggregate key (k1)
  distributed BY hash(k1) buckets 3
  properties("replication_num" = "1","disable_auto_compaction" = "true");

Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run feut

run buildall


Add TaggableCacheItemPoolInterface

Hey.
Thank you for your contribution, but this repository is READ ONLY. You should close this PR and make a new one at http://github.com/php-cache/cache.
Regards
The bot at SubtreeSplit.com

Codecov Report

Merging #4 into master will decrease coverage by 0.6%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master       #4      +/-   ##
============================================
- Coverage     81.34%   80.74%   -0.61%
  Complexity       62       62
============================================
  Files             1        1
  Lines           134      135       +1
============================================
  Hits            109      109
- Misses           25       26       +1

Impacted Files
Coverage Δ
Complexity Δ

CachePoolChain.php
80.74% <ø> (-0.61%)
62 <0> (ø)

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 0ac70d5...e48b90d. Read the comment docs.


Decreased accuracy on usb accelerator when using an AutoML Vision trained model

Hello,
I am using the Coral usb accelerator for object detection. I trained a model on https://console.cloud.google.com/vision, optimized for latency, and successfully compiled the model with the edgetpu-compiler.
When I use the original (not compiled) .tflite, the objects are detected (~90% confidence) on each frame of the video.
But when I use the compiled .tflite, only background is detected (~60% confidence), on each frame.
Is such a decrease of accuracy expected ?
I'm using the same script for both .tflite : https://github.com/PINTO0309/TPU-MobilenetSSD/blob/master/MobileNet-SSD-TPU-sync.py, so i guess it is not a preprocessing issue.
Here is the output of the compilation

MEAN                           8          Mapped to Edge TPU
LOGISTIC                       8          Mapped to Edge TPU
LOGISTIC                       9          More than one subgraph is not supported
MAX_POOL_2D                    6          Mapped to Edge TPU
MAX_POOL_2D                    9          More than one subgraph is not supported
REDUCE_MAX                     8          Operation is otherwise supported, but not mapped due to some unspecified limitation
MUL                            8          Mapped to Edge TPU
MUL                            8          More than one subgraph is not supported
PACK                           24         Tensor has unsupported rank (up to 3 innermost dimensions mapped)
RESHAPE                        32         More than one subgraph is not supported
RESHAPE                        12         Tensor has unsupported rank (up to 3 innermost dimensions mapped)
ADD                            10         Mapped to Edge TPU
ADD                            21         More than one subgraph is not supported
CUSTOM                         1          Operation is working on an unsupported data type
CONCATENATION                  2          More than one subgraph is not supported
CONV_2D                        61         Mapped to Edge TPU
CONV_2D                        25         More than one subgraph is not supported
DEPTHWISE_CONV_2D              17         Mapped to Edge TPU
DEPTHWISE_CONV_2D              25         More than one subgraph is not supported

@alemoreau hi Allen, edgetpu compiler currently only supports classification models from the AutoML vision library. There is a known bug with the AutoMl objection detection engine that we're working to fix on high priority!

@Namburger thank you for the quick response ! So I guess I will have to retrain the model once this is fixed.

@alemoreau did you also compare with a model trained using the Object Detection API? (e.g. a standard MobileNet SSD) I'm having a similar issue with an AutoML model here, so I was planning on trying that next.

@jveitchmichaelis Yes I had good results with quantized SSD MobileNet V2 trained using Object Detection API

@alemoreau hi Allen, edgetpu compiler currently only supports classification models from the AutoML vision library. There is a known bug with the AutoMl objection detection engine that we're working to fix on high priority!

@Namburger Is there an update on the progress towards fixing this bug? Thanks!

@Contruba from what I last heard, the object detection models should be compatible with the compiler now, but inference is still a little slow, which is the next steps that we're trying to fix. I'm reaching out to another team member regarding this, I'll let you know once I hear back.

@Namburger Thank you so much! I eagerly await to here what you find out from your team members.
This issue persists with the version currently in the repo (compiler version 2.0.291256449, updated 28 days ago). So I am curious to know if there is a fix, and if so, what the estimated turn-around time for it to be merged in Master.
Thanks again. We all really appreciate your team's hard work! :)

@Contruba So I just heard back from the team, the current update is that inference will still be very slow after compilation. The speed up is from 1/2fps -> 4/5fps (on the dev board's CPU->TPU) which is not ideal, they're still working on this but I know their plate is quite full at the moment. Unfortunately, I can't give too much more info right now :/

@Namburger Ok, thank you very much for chasing that down. Even though the accuracy issue has been fixed, I am guessing they won't push a new compiler version to the master branch until both the accuracy and speed is fixed?

Hi @Namburger the model I exported from AutoML ran with a latency of 135ms ish on a USB accelerator, so that's in line with 4-5fps.
However there was still a big drop in accuracy, and the TPU compiled model misses a lot of boxes that the CPU one doesn't. I think that's probably a bigger concern at the moment, but it's good to know that some progress is being made. Thanks for the update!
I've switched to retraining a EdgeTPU Mobilenet quant model (the latest) which seems pretty good for now.

Hey @Namburger, I've been following this issue as well and am looking forward to seeing AutoML Object Detection fully supported on the edgetpu with the accuracy and speed issues addressed. Are there any more updates on this? Thanks!

@BotScutters Hi there, yes, AutoML with object detection should be working now!
Closing this issue, if anyone else have any other problems with it, feel free to open a new issue as it will most likely be a bug.

Hi all, for reference, I just realized that it is working with our internal compiler, but not the released version...
Please follow https://github.com/google-coral/edgetpu/issues/144#issuecomment-642917463 for more updates as soon as I find out what we can do about this issue

Hi all -
Seems that there are some works to be done, although this is fixed internally for us.
Please send your model to<EMAIL_ADDRESS>for now, make sure you mention this issue and I can help! Thanks


[stdlib] Span gardening

This PR fixes some stray comments and improves how Span.withUnsafeBytes() is written, making its definition in swiftinterface files compatible with older compilers. We also remove _elementsEqual() here, since it was only used for testing.

@swift-ci please smoke test


Input for SSH config

I think it would be great to have an SSH config input to follow the best practices as described in deployer documentation.

What do you mean?

It’s advised to keep sensible informations outside of version control. To be able to deploy, we need to defined some of these informations in ./ssh/config
With an optional ssh-config input, we could add the ssh configuration from a secret, directly with this action.

Nice idea. Can you create pr with it?

Nice idea. Can you create pr with it?

I can try

Hi.
I don't know if I understand this suggestion correct. Does this include this part too?
host('prod')
    ->set('remote_user', '<username>')
    ->set('hostname', '<ip/hostname>')
    ->set('deploy_path', '<path/to/application/>');

I would like if this wasn't public visible.

@tomasnorre Yes, this is the goal. With this input, you will be able to use a secret to store your SSH to connection settings. The deploy will remain in the host definition from what I know.

@benoitchantre Thanks for the answer. I think the PR should contain a documentation update as well then. :)

@tomasnorre The readme contains a short description of the new parameter, but I think there is already enough good documentation elsewhere about the ~/.ssh/config file itself.

I know how a .ssh/config looks like, Just thought showing how it's used in a GH secret, could be helpful to some, but if I'm alone seeing it like that, it's ok. Just tried to give feedback.
But like the change you are providing here.
Thanks.

The secret follows the same format as you have in your ~/.ssh/config
You can do a copy & paste.

For clarification, do the SSH config values come from the config on my local machine that connects to my server, or the config on the server itself?

@tlerbao ˋprivate-keyis required to install the private key. Inssh-config, you can set the path to the key using IdentityFile`, but it is not necessary.


⚠ SceneTime has degraded performance

In bf45ede, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1795 ms

Resolved: SceneTime performance has improved in d166274 after 7 minutes.


Youtube has more than one types of rate limits, so 'Exceeded' should cover more.

Previously, "quotaExceeded" was too specific, so "Exceeded" should cover more of youtube's rate limit errors.

Great!
I would be even more generic and make that reggae case insensitive.
Then add CHANGELOG, bump version :)

Thanks OS X for auto-correcting regex into reggae

Pushed up some more commits. Should be case insensitive now. Version bumped to 0.25.29 and added to the changelog.

Great job! :clap: :dancer: :tada:


Update video uploads to use livepeer client

Add API endpoint for get-video-status with (Size, Resolution, and duration) due to account restriction and API access, I can't able to fetch asset details.


(encode|parse)AbiParameters detects types correctly when passed as string but not array

Describe the bug
This doesn't work:
encodeAbiParameters(parseAbiParameters(["(uint256 a)", "(uint256 b)"]), [
	{ a: BigInt(1) },
	{ b: BigInt(1) },
])

Error: Source has 2 element(s) but target allows only 1
This works:
encodeAbiParameters(parseAbiParameters(["(uint256 a),(uint256 b)"]), [
	{ a: BigInt(1) },
	{ b: BigInt(1) },
])

Sorry, in case there has been a misconception from my side :)
Cheers, Dennis
Link to Minimal Reproducible Example
No response
Steps To Reproduce
No response
Package Version
1.0.0 (installed by<EMAIL_ADDRESS>TypeScript Version
5.3.2
Anything else?
No response
Validations

[X] Checked there isn't already an issue that exists for the bug you encountered.
[X] Followed the Code of Conduct.

Just confirmed that this works at runtime, but not compile time. Attaching TypeScript Playground.
Great first issue for someone looking to dive into advanced TypeScript!

Want to give it a try! The issue seemsto be in the Filter<Mapped, never>[0], which incorrectly assumes that there is only one element.

@tmm Opened a PR for review  here https://github.com/wevm/abitype/pull/232


"Bluetooth Device Battery v1.0.0" doesn't display headphones

Hi
I'm trying your new workflow "Bluetooth Device Battery v1.0.0". I have three bluetooth devices connected:

Apple trackpad
Bose NC 700 HP headphone
Google Pixel buds
But the workflow only displays one item in the list and it's the Apple trackpad.

Hey @saeedesmaili
Since I only posted it on the Alfred forums, you may have missed it:

I only confirmed that it works with connected Apple devices. Other devices I briefly connected for testing were not found by ioreg or the system profiler, or the battery information was simply not there. If you have a device that you think should show up but doesn't, you can print a log to Alfred's debug window by typing -btb. If you see battery status information that the workflow ignores, feel free to send me those logs. That way I can try to fine-tune the parser.
The same goes for specific information about older AirPods and case versions. If you let me know what uniquely identifies them, they can get proper representation.

Can you check if there is any info about the battery level for your devices when you run the debug command by typing -btb in Alfred while the workflow's debug panel open? If there is and you share the logs I can adjust the parser to include those devices.

Is this helpful? It's strange that the Bose 700 headphone doesn't seem to have the battery level here, but I see the device's battery level in Mac's Bluetooth menu.
Bluetooth Controller:
          Address: F4:D4:88:61:D4:91
          State: On
          Chipset: BCM_4387
          Discoverable: Off
          Firmware Version: 20.5.541.8810
          Product ID: 0x4A05
          Supported services: 0x382039 < HFP AVRCP A2DP HID Braille AACP GATT SerialPort >
          Transport: PCIe
          Vendor ID: 0x004C (Apple)
      Connected:
          Bose NC 700 HP:
              Address: 60:AB:D2:02:C3:4C
              Vendor ID: 0x009E
              Product ID: 0x4024
              Firmware Version: 1.8.2
              Minor Type: Headphones
              Services: 0x800019 < HFP AVRCP A2DP ACL >
          Saeed's Pixel Buds A-Series:
              Address: 74:74:46:EC:D2:67
              Battery Level: 100%
              Minor Type: Headset
              Services: 0x800019 < HFP AVRCP A2DP ACL >
          Saeed’s Magic Trackpad:
              Address: D4:57:63:5D:93:EF
              Vendor ID: 0x004C
              Product ID: 0x0265
              Firmware Version: 1.9.2
              Minor Type: AppleTrackpad
              Services: 0x800020 < HID ACL >
    {
      "IOMatchedAtBoot" = Yes
      "LowBatteryNotificationPercentage" = 2
      "PrimaryUsagePage" = 65280
      "BatteryFaultNotificationType" = "TPBatteryFault"
      "HasBattery" = Yes
      "VendorID" = 76
      "VersionNumber" = 0
      "Built-In" = No
      "DeviceAddress" = "d4-57-63-5d-93-ef"
      "WakeReason" = "Host (0x01)"
      "Product" = "Magic Trackpad"
      "SerialNumber" = "d4-57-63-5d-93-ef"
      "Transport" = "Bluetooth"
      "BatteryLowNotificationType" = "TPLowBattery"
      "ProductID" = 613
      "DeviceUsagePairs" = ({"DeviceUsagePage"=65280,"DeviceUsage"=11},{"DeviceUsagePage"=65280,"DeviceUsage"=20})
      "IOPersonalityPublisher" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "MTFW Version" = 920
      "BD_ADDR" = <d457635d93ef>
      "BatteryPercent" = 12
      "BatteryStatusNotificationType" = "BatteryStatusChanged"
      "CriticallyLowBatteryNotificationPercentage" = 1
      "ReportInterval" = 11250
      "RadioFW Version" = 402
      "VendorIDSource" = 1
      "STFW Version" = 2144
      "CFBundleIdentifier" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "IOProviderClass" = "IOHIDInterface"
      "LocationID" =<PHONE_NUMBER>
      "BluetoothDevice" = Yes
      "IOClass" = "AppleDeviceManagementHIDEventService"
      "HIDServiceSupport" = No
      "CFBundleIdentifierKernel" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "ProductIDArray" = (613)
      "BatteryStatusFlags" = 0
      "ColorID" = 33
      "IOMatchCategory" = "IODefaultMatchCategory"
      "CountryCode" = 0
      "IOProbeScore" = 7175
      "PrimaryUsage" = 11
      "IOGeneralInterest" = "IOCommand is not serializable"
      "BTFW Version" = 402
    }

I have observed the same thing with other devices. It seems that Apple may have access to proprietary information that third-party manufacturers don't share with the general public. But at least there is hope for the Pixel Buds!

Can you let me know if it works for you?

hey @saeedesmaili @LampPrinter, I just updated the workflow and in my tests both of your devices were recognized. Can you let me know if it works for you?

No .workflow file in release.

@LampPrinter 😅 now there is.

Works with my Pixel Buds! Thanks

Working but battery icon not showing for me.

See the discussion here about the icons. You will need SF Pro, and/ or possibly SF Symbols.

Hey @zeitlings
Can you take a look into the following log to see if "Powerbeats" headsets can be added as well? They don't show up right now.
==========================================
		       Debug Info
------------------------------------------
Alfred:         v5.1.1 (2138)
Device Battery: v1.1.0
==========================================
System Profiler:
==========================================
Bluetooth:

      Bluetooth Controller:
          Address: F4:D4:88:61:D4:91
          State: On
          Chipset: BCM_4387
          Discoverable: Off
          Firmware Version: 20.5.529.8129
          Product ID: 0x4A05
          Supported services: 0x382039 < HFP AVRCP A2DP HID Braille AACP GATT SerialPort >
          Transport: PCIe
          Vendor ID: 0x004C (Apple)
      Connected:
          Powerbeats:
              Address: 84:AD:8D:10:A9:55
              Vendor ID: 0x004C
              Product ID: 0x200D
              Firmware Version: 4A394
              Minor Type: Headphones
              RSSI: -48
              Serial Number: GYQDMG6YMK72
              Services: 0x980019 < HFP AVRCP A2DP AACP GATT ACL >
          Saeed’s Magic Trackpad:
              Address: D4:57:63:5D:93:EF
              Vendor ID: 0x004C
              Product ID: 0x0265
              Firmware Version: 1.9.2
              Minor Type: AppleTrackpad
              Services: 0x800020 < HID ACL >
==========================================
ioreg Device Info:
==========================================
+-o AppleDeviceManagementHIDEventService  <class AppleDeviceManagementHIDEventService, id 0x10004dc72, registered, matched, active, busy 0 (1 ms), retain 8>
    {
      "IOMatchedAtBoot" = Yes
      "LowBatteryNotificationPercentage" = 2
      "PrimaryUsagePage" = 65280
      "BatteryFaultNotificationType" = "TPBatteryFault"
      "HasBattery" = Yes
      "VendorID" = 76
      "VersionNumber" = 0
      "Built-In" = No
      "DeviceAddress" = "d4-57-63-5d-93-ef"
      "WakeReason" = "Host (0x01)"
      "Product" = "Magic Trackpad"
      "SerialNumber" = "d4-57-63-5d-93-ef"
      "Transport" = "Bluetooth"
      "BatteryLowNotificationType" = "TPLowBattery"
      "ProductID" = 613
      "DeviceUsagePairs" = ({"DeviceUsagePage"=65280,"DeviceUsage"=11},{"DeviceUsagePage"=65280,"DeviceUsage"=20})
      "IOPersonalityPublisher" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "MTFW Version" = 920
      "BD_ADDR" = <d457635d93ef>
      "BatteryPercent" = 99
      "BatteryStatusNotificationType" = "BatteryStatusChanged"
      "CriticallyLowBatteryNotificationPercentage" = 1
      "ReportInterval" = 11250
      "RadioFW Version" = 402
      "VendorIDSource" = 1
      "STFW Version" = 2144
      "CFBundleIdentifier" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "IOProviderClass" = "IOHIDInterface"
      "LocationID" =<PHONE_NUMBER>
      "BluetoothDevice" = Yes
      "IOClass" = "AppleDeviceManagementHIDEventService"
      "HIDServiceSupport" = No
      "CFBundleIdentifierKernel" = "com.apple.driver.AppleTopCaseHIDEventDriver"
      "ProductIDArray" = (613)
      "BatteryStatusFlags" = 0
      "ColorID" = 33
      "IOMatchCategory" = "IODefaultMatchCategory"
      "CountryCode" = 0
      "IOProbeScore" = 7175
      "PrimaryUsage" = 11
      "IOGeneralInterest" = "IOCommand is not serializable"
      "BTFW Version" = 402
    }


Smarter detection of imported dependency files

Shared files are files that can be imported by 0, 1 or multiple other files. Currently, those files are put in dedicated shared-* folders. They are created on file system if the bati.flags condition in package.json is true.
It's a bit cumbersome to maintain, and for complex flags combinations, it will become more and more difficult to not break things (i.e. ensuring that these files are not created when they shouldn't be).
The goal of this RFC will be to ensure that some files are only generated on file system if at least one other regular file imports it. It mostly impact shared files, but can be used anywhere in boilerplates.
How to tag a file as "dependency"
Possible solutions (TODO: pick one):

files starting with comment: /* BATI dependency */

could be adapted in the future to support other tags: /* BATI dependency,tag1,tag2 */

files with names containing [dependency], like handler[dependency].ts

could be adapted in the future to support other tags: handler[dependency,tag1,tag2].ts

Solution 1. could also be adapted for other use cases, such as generating a whole file only if certain conditions are met (e.g. generate file server.node.ts only if no serverless deployment target has been chosen)


how to render content as article page after edit ?

Describe the feature you'd like to request
how to render content as article page after edit ?
Describe the solution you'd like to see
the editing result is the JSON ,   now I need save it to the DB... my question is how to render it back to web page later and keep the format like i see in the editor?
Additional information
No response

Here’s the method I used

You can retrieve the JSON as an HTML-formatted string like this
https://github.com/steven-tey/novel/discussions/313#discussioncomment-8591476

Render the string obtained above as HTML

export default function ContentRenderer({ json }: { json: any }) {
  const output = useMemo(() => {
    return generateHTML(json, [
      Bold,
      BulletList,
      Document,
      Heading,
      Link,
      Paragraph,
      ListItem,
      Text,
    ]);
  }, [json]);

  return (

  );
}

By specifying the following className, you can define the style for the Novel editor

    <ContentRenderer json={value} />

result

I think there is a better way to do that by using <EditorContent />, to avoid XSS vulnerabiilites and HTML conversion is done internally.

@keyproco Could you elaborate on how to use <EditorContent /> for rendering?

is there any way to do it on the server-side?


The style are not showing in browser

I installed the application using the command : symfony new --demo my_project. It seems to work, but the styles and maybe the scripts are not working in browser, so the app looks like this:

I tried to run some commands like : composer install, composer require symfony/webpack-encore-bundle, npm install, npm run build but the problem persists.
Any help?

Are there any errors reported in your browser console ?

Hm, I can't reproduce this... my steps were:

symfony new --demo my_project/
cd my_project/
symfony serve
Open https://<IP_ADDRESS>:8000/

Styles are OK to me after this. Do you use the latest version of Symfony CLI? You can check by executing symfony self:update. If yes, what browser and OS do you use? What browser version? It may help I think

yeah, so I opened the project in Microsoft Edge and everythink works properly. I dont know why in Google Chrome i get those errors, as I have the last version of it (96.0.4664.45 ). Anyway, thanks a lot!

@alexbotnaru, Is it resolved?

Hello, I just installed the Symfony demo and I have the same problem no matter what I open it with: Google Chrome, Microsoft Edge, or even Mozilla. I have the same error message as you. Do you have a solution? Thank you.

This is still an issue. I just installed it now for the third time in a clean environment on a virtual machine.

downloaded the newest version today
Win 10 prof
xampp (8.2.0)
composer installed (2.5.5)
demo installed with "composer create-project symfony/symfony-demo"
git installed by composer during the process
result in edge AND chrome: css missing
"symfony serve" doesn't work either
used xampps apache server

It's hard to tell my students, that they need to install a node.js Webserver(!!!) and paket Manager npm/yarn to fix this issue. :-/ Any idea how to solve it?

Try to run only these commands:
composer create-project symfony/symfony-demo
cd symfony-demo
symfony serve

Then browse any page, and tell us the error logs that you see in the terminal that is running symfony serve. Thanks.

Looks like I found the problem:

I hadn't installed the symfony-cli binaries, thought symfoy/console is the same => MY FAULT! Sorry.
after running the demo with symfony serve it looked fine
running it in the apache-environment from XAMPP NOT in the root-directory causes problems
some assets are linked to http://localhost/build/*, some others are linked to the subfolfers the demo is running in (which is a typical way of installing it in a teaching-environment: http://localhost/ism/smyfony-demo/public/*
I still don't know where to change that
the blogpost about the demo2 (https://symfony.com/blog/symfony-demo-2-0-introduces-support-for-symfony-6-0) does only implicitly mention, you have to install symfony-cli (via "best practises) and it also does not mention you have to run it in a root directory. Maybe this should be pointed out more clearly.

Maybe consider the following: The symfony demo is intended to learn and teach symfony, to introduce people to symfony. After they installed XAMPP and composer, they're told "composer composes (a) symfony for you" BUT THEN i have to ask them to:

install another webserver (node.js) we actually don't use,  because we only need:
the included NPM package manager to
install ANOTHER package Manager called YARN
this runs for several minutes and maps ca. 30k dependencies... WHY?
Finally please install a 4th "installer" scoop to install symfony-cli which can't be installed by composer
because scoop doesn't do the whole job, edit the path variable of your system manually.

=> after that nobody is convinced anymore, that symfony and composer is a great, finetuned combination. :-/
Hope I could open your eyes a bit for problems some people might run into.

Running a website in a subdirectory requires configuring webpack-encore to make it aware of that subdirectory. The committed files in this repo use a configuration expecting a deployment at the root.

install another webserver (node.js)

node.js is not a webserver. It is a language runtime.
And if you just want to run the demo and not rebuild its assets, you don't need to install node, yarn and the JS dependencies. That's precisely the reason why the output of the asset building is committed in the repo instead of being ignored (as is done in most projects).
You need node.js if you want to run the asset building pipeline, because this pipeline relies on frontend tooling that is implemented in JS rather than in PHP.

Let's close this one as hopefully fixed according to the latest comments. Thanks.


claudette does not work with AnthropicVertex as the client

This documentation page shows how to use claudette with AnthropicVertex: https://github.com/AnswerDotAI/answerdotai/wiki/Accounts-and-Compute#gcloud
But this does not seem to work at present.
Here's an example of the issue: https://github.com/AnswerDotAI/answerdotai/wiki/Accounts-and-Compute#gcloud

User error. Works fine!


Update tor-browser.json

Fix tor browser configs
Fixes issues with tor browser not connecting.
Relates to #10035

[x] I have read the Contributing Guide.

/verify


Mozilla.Firefox.ESR version 102.14.0

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/114530&drop=dogfoodAlpha

@wingetbot run

/azp run


8509 (and growing) workflows backlogged on https://workflows.apps.argoproj.io

Summary
The controller cannot start because it cannot obtain a lease. This is part of the standard YAML manifests. Not sure why this is happening.
Ultimately, this may make this cluster unusable.
@jessesuen @alexmt @sarabala1979
https://cd.apps.argoproj.io/applications/argo-workflows

Not fixed. In the Go code it says:
workflow-controller-lease
in the role
resourceName: workflow-controller
Should both be workflow-controller


Tweet on SIG Architecture

Provide the actual tweet content between the commented colons

SIG Architecture is looking for  SREs to review KEPs, Production Readiness Reviews, and API Reviewers, also contributors to help curate a mentoring program for people to work across SIGs.

SIG Architecture is looking for:

SREs to review KEPs, Production Readiness Reviews, and API Reviewers
Contributors to help curate a mentoring program for people to work across SIGs

For more information click here: https://github.com/kubernetes/community/tree/master/sig-architecture
@chris-short


doc: add steps for doing a release

who knew I could get so many typos in a short paragraph. @cjihrig thanks for catching all of those.


Joda Time in v1.0.0?

Release notes of v1.0.0 mentions "Upgraded to Joda-Time 2.9.2".
If we're targeting first-class Java 8 support in v1.0.0, why use Joda-Time at all? java.time library replaces joda-time project.
https://jcp.org/en/jsr/detail?id=310
http://www.joda.org/joda-time/

See #1383. We decided to leave Joda-Time support in 1.0.0 to simplify migration of Dropwizard applications from 0.9.x to 1.0.x. Many applications still use Joda-Time extensively, and can't easily
switch to the new Date/Time API (JSR-310). Despite that Stephen Colebourne (the library author) advises users to migrate to the new API, he still maintains the project. So, in fact, Joda-Time has a big user base and constantly updated. For these reasons, we don't want to drop its support.


std::move data out of DynamicMemoryWriter when GetReader called

Likely blocked until issue #375 is implemented. See PR #373 for additional discussion.
Currently calling 'DynamicMemoryWriter::GetReader' provides access to data within DynamicMemoryWriter without transferring ownership.
Currently you should never attempt to clear DynamicMemoryWriter's internal stored data for future writes in case a Reader is still referencing the content. This can be avoided procedurally by always creating a new instance of DynamicMemoryWriter after GetReader is called for future dynamic memory reads. Some discussion if the procedural approach is actually more appropriate than adding a clear type concept to DynamicMemoryWriter.
I did try to add a Clear function to DynamicMemoryWriter before understanding the relationship of shared data between the Reader and Writer although that may not be in line with how others would intuitively try to use DynamicMemoryWriter.
Example Clear command for future consideration:
// Clear all currently set memory
void DynamicMemoryWriter::Clear() {
	SeekBeginning();
	streamBuffer.clear();
}

To add a bit of detail, it is possible to switch back and forth between writing or clearing and reading, just that you always want to create a new reader object after a write or clear operation. This is similar how updates to a container can invalidate iterators traversing the container.

To add a bit of detail, it is possible to switch back and forth between writing or clearing and reading, just that you always want to create a new reader object after a write or clear operation. This is similar how updates to a container can invalidate iterators traversing the container.


Support custom user code generation strategies

This would help support requests like this one: https://github.com/StateSmith/StateSmith/issues/57
This might take a while as we will need a stable internal API.

Let me know if you want to engage in some custom code generation and I can help walk you through what you need to.
Here's a unit test that shows how it can be done:
https://github.com/StateSmith/StateSmith/blob/10ab2700148d430ab2871871b643ae85d0a38485/src/StateSmithTest/CustomCodeGen/Ex1.cs


Add option to turn caching off

This issue pertains to:

[ ] GraphQL Playground - Electron App
[ ] GraphQL Playground
[x] GraphQL Playground Middleware

By default, the playground caches your schema and recent queries in the browser localStorage. For development purposes, this is not so convenient. While this also inconvenient with the built-in Graphcool endpoint playground, it cannot be helped there, as it has no idea that the endpoint has changed.
However, when using the middleware component for the Playground in your API Gateway, it would be very helpful if I could pass in an option disableCache or something to make sure it is cleared every time I restart my app.

Great suggestion @kbrandwijk. This should also be taken into account when tackling #234

indeed! this can be resolved with setting Cache-Control headers.


Create prometheus service monitor

Q
A

Bug fix?
no

New feature?
yes

API breaks?
no

Deprecations?
no

Related tickets
fixes #82

License
Apache 2.0

What's in this PR?

Create a Prometheus ServiceMonitor for each NifiCluster.Spec configured with the below:
spec:
  serviceMonitor:
    enabled: true

Why?

As long as the Prometheus Operator is deployed to the Kubernetes cluster, this enables Prometheus to automatically scrape metrics from all of the nifi pods in a NifiCluster where the service monitor has been enabled.
This also enables the later feature addition of auto-scaling nifi clusters with nifikop, driven by Prometheus metrics out of NiFi.
Additional context

Deployed to k8s cluster and tested that a ServiceMonitor was created by NifiKOp. See below Prometheus query :

Checklist

[x] Implementation tested
[x] Error handling code meets the guideline
[x] Logging code meets the guideline
[x] User guide and development docs updated (if needed)
[x] Append changelog with changes

Closing. Decision was made that the operator would not maintain this resource.


Specing how we can simulate the iOS layer in the wifi mock

@artemjackson please talk with @andrew-aladev as you will need to use a bunch of interfaces he knows well including setting up the new endpoints, figuring out the ACLs, etc. Also please, please, please, re-read the specs for multiConnect, multiConnectResolve, disconnect, multiConnectConnectionFailure, killConnections, etc. in thaliMobileNative and thaliMobileNativeWrapper. The mock needs to meet all those behaviors. And keep in mind that part of resolving this bug is enhancing our node tests with the right APIs to validate the mock's behavior. These tests should go right into testthaliMobileNative since these are the same tests that should be used with the native layer.

This change is

PR is added to the queue for testing as 1. task. (4bbb446)

Test (Success) 83371239 build is completed (4bbb446)
See https://github.com/ThaliTester/TestResults/tree/833712394bbb446_Specing_how_we_can_simulate_the_iOS_layer_in_the_wifi_mock_yaronyg/ for the logs

Test 833712394bbb446(4bbb446) has failed
See https://github.com/ThaliTester/TestResults/tree/833712394bbb446_Specing_how_we_can_simulate_the_iOS_layer_in_the_wifi_mock_yaronyg/ for the fail logs

BTW, @artemjackson, I can only check this in if you give me a LGTM.

@chapko Please review so I can finally get a LGTM and check this thing in.

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


Add Weather API Integration for Enhanced Information Display

Problem:
The current system lacks real-time weather information, specifically details such as wind speed, rain warnings, and other relevant data. This absence limits the user's ability to make informed decisions based on current weather conditions.
Proposed Solution:
Integrate a Weather API to fetch and display real-time weather information on the platform. This enhancement will enable users to access crucial details like wind speed, rain warnings, and other relevant weather data, empowering them to make better-informed decisions related to their activities.
Steps to Implement:
Research and select a reliable Weather API that provides the necessary information.
Integrate the chosen API into the system.
Design and implement UI components to display the acquired weather data.
Ensure that the weather information is updated in real-time for accuracy.
Expected Behavior:
Upon implementation, users should be able to view real-time weather details, including but not limited to wind speed, rain warnings, and other relevant information, providing them with a comprehensive understanding of current weather conditions.
Additional Information:
Any specific requirements or preferences for the Weather API.
Consideration for user preferences or customization related to displayed weather information.
Potential impact on performance or existing functionality.
Environment:
Framework/Language: [e.g., JavaScript, Python, etc.]
Current Version: [e.g., v1.2.3]
Other relevant details about the system architecture.
Feel free to share your insights and recommendations on the choice of Weather API and the implementation approach. Collaboration on this enhancement is encouraged! ☁🌬🌧

I've previously integrated similar APIs into projects. I'm keen on handling the integration of a reliable Weather API for this project. Please consider assigning me this task.
my repo : https://github.com/Surajit0573/ToDo-List_Wather-app

The Issue has been assigned >_<

Hi , @KrishGaur1354 there is a "CropSync-main (1).zip" file and that have a different (html, js and CSS file) should I make changes in that file or outer file, which have different files ??
thanks for considering!!

Hi , @KrishGaur1354 there is a "CropSync-main (1).zip" file and that have a different (html, js and CSS file) should I make changes in that file or outer file, which have different files ?? thanks for considering!!

Make changes in the outer files; just ignore the zip file

@KrishGaur1354, I have included all the necessary information. Please review and confirm any additional requirements, if any, before I proceed with the PR.
Also, I am contributing under Codepeak 2023. It would be helpful if you could add Codepeak labels. Thanks
screen-capture (1).webm

@KrishGaur1354, I have included all the necessary information. Please review and confirm any additional requirements, if any, before I proceed with the PR. Also, I am contributing under Codepeak 2023. It would be helpful if you could add Codepeak labels. Thanks
screen-capture.1.webm

@KrishGaur1354 any problem ?!!