More printer model support

How can we have this support more printers?
I have a C2665dnf, and it is not working. The printer is not on my IoT VLAN (on which HA is), but I believe I gave HA full access to access the printer on any port. What port are you using? I may need to enable that on my printer. Otherwise, how are you accessing this, and what do you need to add more model support?
I am currently pulling data over SNMP using NodeRed. (page counts (black, color, totals, prints, copies, scan to email/USB) and toner levels)

But it would be nice to get status, cover open, paper jam, and other data. (I haven't been able to find those in SNMP yet. Though I'm sure they're there)

Thanks for the suggestion. Right now, the integration uses a simple library that parses the web interface of the printer. I've never used SNMP so I don't know about its capabilities.
If you like, you can extend the library yourself: https://github.com/kongo09/dell-printer

I just took a quick look at SNMP. Did you decode the Dell OIDs to identify, what data is the toner level and so on? I did a dump from my printer and found the toner:
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = STRING: "Cyan Cartridge"
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = STRING: "Magenta Cartridge"
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = STRING: "Yellow Cartridge"
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = STRING: "Black Cartridge"
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 1400
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 1400
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 1400
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 2000
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 378
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 602
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 1064
iso.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> = INTEGER: 1760

Essentially, that seems to say:

Cyan
has a maximum level of 1400
and current level of 378

which fits to what the printer says: 27%
There is a super long list of data available via SNMP at least of my printer. But I don't know how to translate the OID codes, so it's difficult to understand. Maybe we can decode that stuff together and I can change the integration so that it works more generically with more Dell printer types.

Yes, those are the OIDs I use for the toner. (At least the .8 and .9 ones for current and max level, I don't use the .6 as )
And I use these for page counts:
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>
I have all that working (through NodeRed, since the SNMP through HA configuration.yaml was .. sketchy at best) and get the interface I pasted up above. I was hoping to get your integration to collect more info.
I looked at your dell-printer repo, but not sure where to even begin. I'm more of a VB, (Pascal,) and C coder, not so much python or anything else.  If you give me some direction, I'd be happy to flail my way through it though. If it's a web scraper, we may be able to get similar info our of other Dell printers (hoping they mostly have the same web interface. Or maybe only 2 or 3 different ones depending on what printer model).
Here's what my rendered index.html looks like. Don't think there's anything personally identifiable on there except my public IPv6:

Interesting, that looks very similar to my interface. Yes, I just scrape that. SNMP work probably be more efficient.
My scraping code is in a separate library. Check my repos, you'll see it. Actually, I used this to learn python.
I guess there are two possibilities: add a second scraper for your model or rebuild the integration using SNMP. I wouldn't do anything by myself, but if you're willing to help...

I haven't been able to find things like the Waste Toner Box status, or the covers (open/closed), or general status (Ready) in SNMP.
I agree that SNMP would be a nice way to collect all this, but in my searches, I was unable to come up with any good Dell printer MIBs that went into the details of what's what.
So my vote is on updating the scraper code to make it generic for that version of the Dell printer website.

Check, if my scraper works for your model. You don't need HA for that, just on the command line. It should be easy to include your model in the integration then.
I also looked around for Dell printer MIBs but couldn't find anything serious.

https://github.com/kongo09/dell-printer

Ok, I got git installed, and added it to my Visual Studio Code as extension, so I can see the project. Will see how I can actually run it next. I'm starting from scratch here. Also getting Python installed so I can actually run it.
I see the printer_parser.py in the src folder which seems to do the most of the work.. Which file do I run to test?
Also, I can't find where you set the IP:
class DellPrinterParser:
def init(self, session: aiohttp.ClientSession, ip: str):
self.session = session
self.ip = ip
(Or do I set that in the README.md? I didn't think a readme file would be included in the code)
Give me a nudge in the right direction so I can figure this out.

oh, you're serious :-)
This is just a library. To run it, you need your own python file that calls it. In the README.md there is an example file. You can copy that into a new file and name it whatever you like, e.g. test.py and then you run it either from the command line with python test.py or from inside VSC.

Lexmark_MIB_file_pack_20190502.zip
I found a pack of Lexmark MIBs. The Printer-MIB.mib file is quite helpful to decode the OIDs. As far as I know, Dell printers used to be manufactured by Lexmark. For my printer, I can identify page count, status, and so on. Also the covers are there.

Yes, I'm having good luck with the Lexmark MIB as well. I've got the four covers, trays and sizes (how many sheets, and current capacity (though it's out of paper, so will need to check if that actually works)), Status message (Ready/Standby).
Didn't get a chance to try your python yet.

Having said all that, if the Brother integration is all setup using SNMP, copying that and substituting Dell/Lexmark OIDs would work out. Better than the custom NodeRed flows I have going, or putting load on scraping the webpage regularly.
I have a Brother printer as well, and have the Brother integration already and it is working well for me. Though a little limited on entities. I just get these six:

Nothing on open covers. But the drum life and toner remaining are percentages which is nice.
Interestingly enough that status says "Sleep".
I'm also using the IPP integration, and that tells me the status is "Idle"
Unfortunately, even though I have IPP enabled on my Dell printer, I cannot get the IPP HA integration to recognize my Dell printer.

Yes, brother is using asyncio. That works for Dell as well, but not when I try to retrieve a whole table walking over the SNMP tree. Strange.

I've now overcome the async problem of SNMP by going for sync. The trays and covers are all available, so are the toner levels. I cannot identify the different page counters that you used. Which oids did you use?

If you like, you can clone https://github.com/kongo09/dell-printer-snmp and try the example.py to read the values from your printer. Please share the output.

Don't have much time right now, but can at least give you these counters. Mine is an MFP unit, so it has scan to email, scan to USB, print, copy, etc counts in both black and color.
OIDs:
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>,
<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>
Which in order are:
Total
Black
Color
BPrint
CPrint
BCopy
CCopy
Scan2Email
Scan2SMB
(Pretty sure there's also a scan to USB, but looks like I don't use that. I believe scan to USB may be <IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> (Which returns 1 for me, cause I did use it once a few weeks ago when I had some scan2email issues. But I would need to verify that. And not sure what <IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> is, as that returns 0 for me, but it's in the scan to XXX range, so it's potentially another scan destination, and there's also a <IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS>.<IP_ADDRESS> in the page count range which returns 0 (Maybe that's FAX prints actually now that I think about it. Which would potentially make that 20.14 faxes sent (scan to FAX)? But again, guessing on those at the moment.))
Total is the total imprint count. Black is the total Black imprint count, which should equal the BPrint and BCopy added together.
Ditto for the Color numbers.
(And likewise, total copies is BCopy plus CCopy)

Hm, that's non-standard. <IP_ADDRESS>.4 is a private section that's not standardized. All my oids start with <IP_ADDRESS>.2.1.43 which is the printer management standard.

Hi !
I have a Del H625cdw which is autodetected after installing your integration. Sadly i can't add it as i have the same error as OP.
As this issue seems stalled, i thought i might revive it instead of creating a new one.
I cloned your snmp repo and launched example.py. That looks very promising:
Model: Dell Color MFP H625cdw; Controller<PHONE_NUMBER>49, Engine 02.54.00
Status: idle
Serial no: FH2022072
Page counter: 10001
Sensors data: {'model': 'Dell Color MFP H625cdw; Controller<PHONE_NUMBER>49, Engine 02.54.00', 'serial': 'FH2022072', 'printer_status': '3', 'device_status': '2', 'status': 'idle', 'printer_status_paper': 'ok', 'printer_status_toner': 'ok', 'uptime': datetime.datetime(2023, 10, 17, 8, 57, 29, tzinfo=datetime.timezone.utc), 'page_counter': 10001, 'supplies': [{'name': 'Cyan Toner Cartridge', 'color': 'cyan', 'capacity': '3100', 'level': '2480'}, {'name': 'Magenta Toner Cartridge', 'color': 'magenta', 'capacity': '2500', 'level': '2500'}, {'name': 'Yellow Toner Cartridge', 'color': 'yellow', 'capacity': '3100', 'level': '2480'}, {'name': 'Black Toner Cartridge', 'color': 'black', 'capacity': '1200', 'level': '480'}, {'name': 'Cyan Drum Cartridge', 'color': '', 'capacity': '50000', 'level': '40000'}, {'name': 'Magenta Drum Cartridge', 'color': '', 'capacity': '50000', 'level': '40000'}, {'name': 'Yellow Drum Cartridge', 'color': '', 'capacity': '50000', 'level': '40000'}, {'name': 'Black Drum Cartridge', 'color': '', 'capacity': '50000', 'level': '40000'}, {'name': 'Waste Toner Box', 'color': '', 'capacity': '30000', 'level': '30000'}], 'cover': [{'name': 'Right Side Cover', 'status': 'closed'}, {'name': 'Rear Cover', 'status': 'closed'}, {'name': 'DADF Cover', 'status': 'closed'}], 'output_tray': [{'name': 'MSI', 'type': 'manual sheet feeder', 'capacity': '50', 'status': 'idle', 'media': 'labels'}, {'name': 'TRAY 1', 'type': 'removable auto sheet feeder', 'capacity': '250', 'status': 'idle', 'media': 'stationery'}], 'input_tray': [{'name': 'CENTER TRAY', 'type': 'unremovable bin', 'capacity': '150', 'status': 'idle', 'page_delivery': 'face down'}]}

I'm pretty much just using NodeRed to get info from my Dell color printer. Here's the flow I use: https://github.com/JvdMaat/shared/blob/main/DellSNMP.json
(Just update the IP of your printer and SNMP string in the two SNMP nodes)
(And you'll need top add node-red-node-snmp to the palette)

Works well, thanks mate. I am relatively new to node-red. This saved me a ton of time. I just had to add the node-red companion integration from HACS (if someone reading this also wants to import JvdMaat's json).
While waiting for the author to maybe convert the integration to SNMP, i will stick with your solution !
If it's not asked too much, would you be so kind to share the dashboard with me ? Especially the ink level part ? Did you create helpers or a template variable to calculate the % ?

Oh yeah, I assumed one already had NoreRed setup to work with HA. That's of course a prerequisite.
I use two custom cards to make the toner bar graphs: vertical-stack-in-card, bar-card. Here's the YAML:
type: custom:vertical-stack-in-card
title: Dell C2665dnf Ink Levels
cards:
  - type: custom:bar-card
    columns: 4
    direction: up
    entities:
      - color: Grey
        entity: sensor.c2665_black_percentage
      - color: Cyan
        entity: sensor.c2665_cyan_percentage
      - color: Magenta
        entity: sensor.c2665_magenta_percentage
      - color: Yellow
        entity: sensor.c2665_yellow_percentage
    height: 200px
    max: 100
    min: 0
    padding: 2px
    target: 20
    title_position: bottom
    icon_position: inside
    unit_of_measurement: '%'
    width: 100%

And yes, I created template entries (in configuration.yaml):
sensor:
  - platform: template
    sensors:
      c2665_black_percentage:
        friendly_name: "Black Toner left"
        unit_of_measurement: "%"
        value_template: "{{ ((states('sensor.c2665dnf_black_level') | float / states('sensor.c2665dnf_black_total') | float ) * 100 ) | int }}"

Hope that helps.

Works like a charm. Big thanks man ....
I had Node Red Addon and already working but did not yet had any needs for the companion integration. I think that one is only needed if you want to create sensors from NR in HA. I did not yet have that need.
Thanks again for your help, appreciated !

Hallo Foxi342,
could you help me please? I have your same printer (H625cdw), but I am lost.
A short step by step guide would help very much.
Thank you very much in advance for any help you would give me.
Alexander

@JvdMaat , @Foxi352 & @Alex-DeIt in case you got it working yet.
I do have the same H625cdw as Foxi and Alex.
I am very new to all of this, but I think I have most of it.  I got HACS, Node Red, the companion app, and the two custom cards running.
I did change my printer IP address in both of the host IP locations in the json file before I uploaded it to node-red.
The issue is that the sensors reports that it is unavailable.
Checking the logs provides two errors:
`Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:199
integration: Template (documentation, issues)
First occurred: 11:36:15 AM (4 occurrences)
Last logged: 11:36:15 AM
TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ ((states('sensor.c2665dnf_black_level') | float / states('sensor.c2665dnf_black_total') | float) * 100) | int }}' but no default was specified') while processing template 'Template<template=({{ ((states('sensor.c2665dnf_black_level') | float / states('sensor.c2665dnf_black_total') | float) * 100) | int }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.c2665_black_percentage'
TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ ((states('sensor.c2665dnf_cyan_level') | float / states('sensor.c2665dnf_cyan_total') | float) * 100) | int }}' but no default was specified') while processing template 'Template<template=({{ ((states('sensor.c2665dnf_cyan_level') | float / states('sensor.c2665dnf_cyan_total') | float) * 100) | int }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.c2665_cyan_percentage'
TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ ((states('sensor.c2665dnf_magenta_level') | float / states('sensor.c2665dnf_magenta_total') | float) * 100) | int }}' but no default was specified') while processing template 'Template<template=({{ ((states('sensor.c2665dnf_magenta_level') | float / states('sensor.c2665dnf_magenta_total') | float) * 100) | int }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.c2665_magenta_percentage'
TemplateError('ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ ((states('sensor.c2665dnf_yellow_level') | float / states('sensor.c2665dnf_yellow_total') | float) * 100) | int }}' but no default was specified') while processing template 'Template<template=({{ ((states('sensor.c2665dnf_yellow_level') | float / states('sensor.c2665dnf_yellow_total') | float) * 100) | int }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.c2665_yellow_percentage'
And:Logger: homeassistant.helpers.event
Source: helpers/template.py:621
First occurred: 11:36:15 AM (4 occurrences)
Last logged: 11:36:15 AM
Error while processing template: Template<template=({{ ((states('sensor.c2665dnf_black_level') | float / states('sensor.c2665dnf_black_total') | float) * 100) | int }}) renders=2>
Error while processing template: Template<template=({{ ((states('sensor.c2665dnf_cyan_level') | float / states('sensor.c2665dnf_cyan_total') | float) * 100) | int }}) renders=2>
Error while processing template: Template<template=({{ ((states('sensor.c2665dnf_magenta_level') | float / states('sensor.c2665dnf_magenta_total') | float) * 100) | int }}) renders=2>
Error while processing template: Template<template=({{ ((states('sensor.c2665dnf_yellow_level') | float / states('sensor.c2665dnf_yellow_total') | float) * 100) | int }}) renders=2>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2273, in forgiving_float_filter
return float(value)
^^^^^^^^^^^^
ValueError: could not convert string to float: 'unknown'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 619, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2654, in _render_with_context
return template.render(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.12/site-packages/jinja2/environment.py", line 939, in handle_exception
raise rewrite_traceback_stack(source=source)
File "
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 731, in async_render_to_info
render_info._result = self.async_render(  # noqa: SLF001
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 621, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: ValueError: Template error: float got invalid input 'unknown' when rendering template '{{ ((states('sensor.c2665dnf_black_level') | float / states('sensor.c2665dnf_black_total') | float) * 100) | int }}' but no default was specified`
I am not sure how to interpret these errors, or solve them.
My failed attempt:
I went back into the yaml config and tried changing the sensor config to this, which in fact did work, but just told me that my ink levels were 0 because it didn't get an actual value.  But, because it was returning an actual number now, the errors cleared and it thought it was happy and working properly, I should have seen that one coming.
`sensor:

platform: template
sensors:
c2665_black_percentage:
unique_id: c2665_black_percentage_id
friendly_name: "Black Toner left"
unit_of_measurement: "%"
value_template: >
{% set black_level = states('sensor.c2665dnf_black_level') | float(0) %}
{% set black_total = states('sensor.c2665dnf_black_total') | float(0) %}
{% if black_total > 0 %}
{{ (black_level / black_total * 100) | int }}
{% else %}
0
{% endif %}`


Merge commit breaks log() parsing

Having a merge commit in the dolt log breaks log() parsing, since there's an extra "Merge:" line between "commit" and "Author:" in the output.
Stacktrace (sanitized)
  File "venv/lib/python3.8/site-packages/doltpy/core/dolt.py", line 500, in log
    date = datetime.strptime(output[i + date_offset].split(':', maxsplit=1)[1].lstrip(),
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data 'author<EMAIL_ADDRESS>does not match format '%a %b %d %H:%M:%S %z %Y'

dolt log output (sanitized)
commit 53lmlmpumo499i5puf12ip875taql2ad
Merge: 48l4ovo7c2mrqkagi9io1g3eam1s5m0b 0puirbrqe5sgtjrr8j2ka3dabeo6nk58
Author: author<EMAIL_ADDRESS>Date:   Thu Oct 01 21:17:20 +0200 2020

	Merged PR #1

[...]

@louisrigot thanks for this, you are indeed correct. I will fix today.


ERROR : GPT3 error: You exceeded your current quota, please check your plan and billing details.

is there any alternative to this? or i need to pay

you need to pay @titopin1234

@titopin1234, since we currently only support OpenAI's models for the LLM powering the whole framework, you need to pay for your own tokens.


length constraint not detected in regex tests

Hello,
in createUiDefinition.json, I have defined following password box with a regex which seems to be valid
{
                                "name": "databaseServerPassword",
                                "type": "Microsoft.Common.PasswordBox",
                                "label": {
                                    "password": "Database server Password",
                                    "confirmPassword": "Confirm password"
                                },
                                "toolTip": "Password for the database server administrator.",
                                "constraints": {
                                    "required": true,
                                    "regex": "^(?=.{8,128})((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\\d)(?=.*[a-zA-Z])(?=.*[\\W_])|(?=.*[a-z])(?=.*[A-Z])(?=.*[\\W_])).*.*$",
                                    "validationMessage": "Password must have 3 amongs 1 lower case, 1 upper case, 1 number and 1 special character, and must be between 8 and 128 characters."
                                },
                                "options": {
                                    "hideConfirmation": false
                                },
                                "visible": true
                            }

But following test is failing even their is a length constraint
[-] PasswordBoxes Must Have Min Length (169 ms)                                                                                PasswordBox 'databaseServerPassword' regex does not have a length constraint.
similarly
this
{
                "name": "instanceName",
                "type": "Microsoft.Common.TextBox",
                "label": "xDM Instance name",
                "toolTip": "Prefix used for all resource names in the resource group.",
                "defaultValue": "xdm",
                "constraints": {
                    "required": true,
                    "regex": "^[0-9a-z][0-9a-z-]{1,18}[0-9a-z]$",
                    "validationMessage": "[3..20] chars. Lowercase letters, number and hyphens. Cannot start / end with hyphens."
                },
                "visible": true
            }

Is failing with
[?] Textboxes Are Well Formed (143 ms)                                                                                TextBox 'instanceName' regex does not have a length constraint.
It seems regex test is not able to detect length validation when there is one

We have the same issue. Our regex for a datetime is ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}Z$
And test fails with "TextBox 'originalDatabaseTime' regex does not have a length constraint."

same issue with regexp:
"^(?:[a-z0-9!#$%&'*+/=?^_{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$"

Has this been released? I am installing following the instructions on https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/test-toolkit , but the issue seems to still be present.

@ginevragaudioso - do you have a createUIdef file that we can use for a repro?

yes
{     "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",     "handler": "Microsoft.Azure.CreateUIDef",     "parameters": {         "basics": [             {                 "constraints": {                     "regex": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}$",                     "required": true,                     "validationMessage": "Invalid token"                 },                 "defaultValue": "",                 "label": "Token",                 "name": "token",                 "toolTip": "Token",                 "type": "Microsoft.Common.TextBox"             },         ],         "outputs": {             "token": "[basics('token')]",         },         "steps": []     },     "version": "0.1.2-preview" }

#548

Hello,
There were 2 examples reported in the issue.
The first one regarding passwordbox has been fixed but this one seems to be still present
{
                "name": "instanceName",
                "type": "Microsoft.Common.TextBox",
                "label": "xDM Instance name",
                "toolTip": "Prefix used for all resource names in the resource group.",
                "defaultValue": "xdm",
                "constraints": {
                    "required": true,
                    "regex": "^[0-9a-z][0-9a-z-]{1,18}[0-9a-z]$",
                    "validationMessage": "[3..20] chars. Lowercase letters, number and hyphens. Cannot start / end with hyphens."
                },
                "visible": true
            }

Is failing with
[?] Textboxes Are Well Formed (143 ms) TextBox 'instanceName' regex does not have a length constraint.
Thanks

Still getting this length error for:

TextBox 'vm_Name' regex does not have a length constraint.

Here the snippet for the Textbox - the length is defined by regex:
      {
        "name": "vm_Name",
        "type": "Microsoft.Common.TextBox",
        "label": "Virtual Machine name",
        "toolTip": "Choose an unique name which identifys your virtual machine.",
        "constraints": {
          "required": true,
          "regex": "^[a-z][a-zA-Z0-9-]{1,12}[a-zA-Z0-9-]$",
          "validationMessage": "The value should not be empty, start with a lowercase character, must be less than 15 characters and must contain only letters, numbers and -."
        },
        "visible": true
      },

Snippet in workflow:
      - name: Run ARM TTK for SINGLE WIN VM
        uses<EMAIL_ADDRESS>


Readme edits

@derekcollison typo, punctuation

Coverage decreased (-0.4%) to 89.702% when pulling 73a6b8ef62e1fe6f0a0b1c8f5e3fd6d981f7a72a on readme-edits into 1e4dc91a2cffd2d7538617f9f40f3da0884a11ee on master.


IGAPP-592: Html support TüNews

Replaced title & content with page component. Added sanitizer to prevent xss attacks.
https://issues.tuerantuer.org/browse/IGAPP-592
This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.

Builds are currently failing because of prettier. You could fix this by running yarn prettier --write ..


Python 3 compatibility

Solved in #4

For the record, I forked the repository an maintain a more recent version at https://github.com/sphinx-contrib/jinja-autodoc


Add support for the deprected and internal images list

Status
Ready
Related Content Pull Request
Related PR:
link to the PR at demisto/content
Related Issues
Related: CIAC-416
Description
adding support for 2 couples of new key is the build.conf :
deprecated=true
deprectaed_reason="text message"
internalonly=true
internalonly_reason="text message"
the build script will handle the above key to maintains  2 list in the dockerfiles repo
deprected_images.json: this file will contain all the deprecated docker images information
internal_images.json: this file will contain all the dockerimags information that are for internal use only

@glicht can you please review here or you would like us to have the conversation first.

@wissamg let's just add the env variables to the docker image when building a deprecated image:

DEPRECATED_IMAGE=true
DEPRECATED_REASON=...


[Bug report] Config folder requires manual creation after yesterday's update

Describe the bug
when settings a new theme with a fresh install, it attempts to create a symlink to $BASE_SHELL_COLORSCHEME_PATH, but the $BASE16_CONFIG_PATH directory doesn't yet exist, so it errors, and the theme won't be set next time the shell starts.
Expected behavior
$BASE16_CONFIG_PATH directory to be created automatically, so the symlink is created successfully

Thanks for reporting. Are you using fish? I've created a fix for this https://github.com/base16-project/base16-shell/pull/14

Yes I was using fish.


Update complicated from 0.3.1 to 0.4.0

I installed MoonCord 0.3.1 on my Fluiddpi which uses the most current Klipper, Moonraker and OS files.
As I just got the update notification for 0.4.0, I updated via the Fluidd-UI. During the update, I noticed some warnings about cleaning up folders in NPM.
After the update, MoonCord no longer worked, I got only "this interaction has failed" to any command.
Steps I took to resolve the issue (successfully):
1.) sudo chmod +X +R and +W for the folder "scripts" (I could only see the filenames, not even read permissions)
2.) sudo ./migrateNode.sh (this was probably unnecessary, I got a warning from the updater)
3.) ./migrateNode.sh (as Pi, no su rights)
After a restart and a few minutes, MoonCord is working again.
I suggest:
1.) Definitely fix permissions on the scripts folter
2.) If possible perform the node.js-update automatically
3.) Adjust the Wiki so people know how to upgrade correctly.

I stated already on a newer issue, i am aware about the bugs in 0.0.4, before i released it, it worked great... I tested it very deeply till there where no issues anymore, but every setup is different it seems like, i try to fix the issues asap

Thank you for your enormous effort. The software is very handy and I prefer it over VPN when I'm not at home. :)

resolved in 0.0.5


Problem with analysis tooltip and error

@xavijam commented on Wed May 31 2017
Checking some behaviors with analyses, I've found this problem:

Should we remove the analysis-name tooltip when there is an error in the analysis node?
Assigning @arianaescobar because she opened the ticket in CartoDB repository 😬
cc @rjimenezda @rubenmoya

@arianaescobar commented on Wed May 31 2017
I'd say that's the fastest solution, yeah.
But, just wondering, is it possible to "merge" both tooltips in a single one in those cases? Like "Centroid analysis failed"?

@xavijam commented on Wed May 31 2017
Sure!

@xavijam commented on Wed May 31 2017
But take into account that the error could change and provide more info. It could be like:
Centroid (A2): column whatever is not longer available
What do you think?

@arianaescobar commented on Wed May 31 2017
Love it.

@arianaescobar should we make the tooltip red? Suggested by @urbanphes.

Yes, totally!

Closed via #12259

In production 👍


Desktop (please complete the following information):

OS: Linux
python version: 3.11.8
redis-py version: 5.1.0
full requirements.txt?

Additional context
Add any other context about the problem here.

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

Thanks for reporting this. I'll address this shortly


feat: add route option (close #1505)

This pr adds route option for vuepress config file.

New cleanUrl option to support "clean urls"  without .html suffix
pagePatterns and permalinkPatten is moved under route

This pr is based on #1537

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

11 of 15 (73.33%)  changed or added relevant lines in 8 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.2%) to 41.338%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/cli/src/commands/dev/watchPageFiles.ts
0
1
0.0%

packages/client/src/router/resolveRoutePath.ts
0
1
0.0%

packages/core/src/app/prepare/prepareRoutes.ts
1
3
33.33%

Files with Coverage Reduction
New Missed Lines
%

packages/client/src/router/resolveRoutePath.ts
1
0.0%

packages/core/src/app/prepare/prepareRoutes.ts
1
10.34%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
692

Relevant Lines:
1720

💛  - Coveralls

now e2e test is added in this PR

A little weird to me, I can not reproduce the CI result locally


Have ability to run cron at startup

This may be a dupe of https://github.com/robfig/cron/issues/119 , and if so I apologise.
I'm proposing a feature request: an @startup or @immediate or something similar keyword.  Namely, run the function as soon as the cron service starts (in addition to any other schedule provided, of course).
In some Linux implementations of cron there's a @reboot flag which I'm sort of trying to emulate here.  This flag could be called @reboot too, though that might be confusing.

Call a go routine on startup instead? You don't need this library to do that!

Ha, that's true, but if I want the cron schedule / calling of go routine on startup to be conditional on external config, then I do.  We pass-in an external config file that may or may not have a list of cron schedules to run various goroutines on, and some of those schedules may or may not be "run this on startup".

I prefix jobs I want to run at startup with a ! character and execute the desired task by calling the function directly. I then I override the schedule string
sch = strings.TrimLeft(sch, "!")

I would like to stick to the cron spec without adding one-off features, especially because this can be easily done outside of cron with a custom prefix as suggested by @junkiebev or a separate bit. Sorry!

What about @reboot?


Import .cheat in .cheat

Hi , sorry if the feature already exists but is there a way to import a cheat content in another cheat.
I have different variable declarations that I wanted to share between my cheats ...
So I'm looking for a way to do it.
Sorry if no relevant, I'll close the issue

do you mean this https://github.com/denisidoro/navi/blob/master/docs/cheatsheet_syntax.md#extending-cheatsheets ?


unhelpful error: Warning: Failed to configure some repository settings

This error is followed by a dump of the repo settings JSON and is unreadable.

We no longer configure repository settings, so this can be closed.


Updated testing docs for Jest

Hey fellas,
Thanks again for all your work on react-router!
Any chance we could get some updated testing docs for Jest though?
Also as an FYI, The link to https://github.com/rackt/react-router/blob/master/docs/guides/testing.md no longer works. I've found it linked to on quite a few posts online.
Work arounds for using react-router with Jest were working with version 0.13.x but the work arounds no longer work with 1.0.x
Specifically, if I render any component that requires react-router, the Jest tests fail.
For example, the following Jest test will fail:
describe('Test', function() {
  var ReactRouter = require('react-router');
});

I get the following error.
it encountered a declaration exception

Any ideas?

Hmmm... I just got all my tests to pass. I'm not sure why they are now passing, but this is what I changed in my package.json. Do you know why react-router no longer complains in the Jest tests?
Before
  "scripts": {
    "test": "jest",
    "postinstall": "gulp production"
  },
  "jest": {
    "scriptPreprocessor": "./node_modules/babel-jest",
    "unmockedModulePathPatterns": [
      "./node_modules/react",
      "./node_modules/lodash",
      "./node_modules/object-assign",
      "./node_modules/keymirror",
      "./node_modules/chance",
      "./react/constants/Actions",
      "./react/Factories"
    ]
  },

After
  "scripts": {
    "test": "jest",
    "postinstall": "gulp production"
  },
  "jest": {
    "scriptPreprocessor": "../node_modules/babel-jest",
     "rootDir": "./react",
    "unmockedModulePathPatterns": [
      "../node_modules/react",
      "../node_modules/lodash",
      "../node_modules/object-assign",
      "../node_modules/keymirror",
      "../node_modules/chance",
      "./constants/Actions",
      "./Factories"
    ]
  }

:+1: I am running into the same error, but including rootDir in my package.json doesn't solve the problem for me :|

Also as an FYI, The link to https://github.com/rackt/react-router/blob/master/docs/guides/testing.md no longer works. I've found it linked to on quite a few posts online.

@chiedojohn , do you mind sharing what those links here?
Thanks

Hey @machinealgo I'm not sure I understand your question!

I think @machinealgo meant the correct link to the 0.13.x testing docs.

Ah, sadly I have not been able to find any correct link

Speaking of the Testing guide, when will it be restored for 1.x? In commit b21302, testing.md was removed and it has not been re-added. There are links scattered around SO and other places that point to it. The structure of the new docs doesn't seem to include any references to testing that I see.

I'm having the same issue.  If react-router is required by a component I am testing I get a "Unexpected token ..." Error.  Can't say the '...' is very specific.  I've been trying to dig further into this, but am having no luck.  Been showing up since upgrading to 1.0.0-rc1.

I opened the issue on rewriting the docs for 1.0, I will do that as soon as I find some time (#2149)

Thanks @knowbody

@knowbody Ideally the docs would identify and fix the issue, but my concern right now isn't the docs, it's the fact that react-router v1.0.0-rc1 doesn't work with Jest 0.5.x, I get:
it encountered a declaration exception

Whenever a file I am trying to test requires react-router.

@bobmonteverde I do agree, I haven't looked into that issue yet hence I left this one open and opened the other issue just for docs.

@knowbody awesome.  Let me know if you want any help.  Sadly the error was pretty vague (and I just put on this project that's using react, react-router, and jest), so I wasn't able to dive into what was actually going wrong.  If you have any insight on what's likely the issue, or need someone to test something out, please let me know, I will gladly help as much as I can.

@bobmonteverde I don't use Jest (I don't know if @knowbody does, or anybody else at rackt for that matter), so I'm not a great candidate to fix this particular issue. If you or someone else who does would like to dive in and figure out why it doesn't like our lib that would be awesome.

I'm not the Jest expert, but I played a bit just now and added some simple tests to my playground example. Have a look at the setup there, it seems to me like everything should work just fine.
Send me PR in my playground repo with the tests which are not working as you expect and I try to help there. Or maybe to keep everything here I just add tests to the examples we have here. But I need some more time to do that. I know I also promised to write the docs on testing, but I need to look a bit more into Jest to do so.

Looks like I was able to get things fixed... at least on my setup. @knowbody it seems to be caused by upgrading from old jest, react, etc. setups. Looking at your repo to see your setup was helpful. You were coming into it fresh as opposed to upgrading from legacy setups which probably helped.
Firstly, I needed to remove the following line from my package.json as that is no longer needed.
"react-tools": "~0.13.3",

Next, I needed to add the following line to my package.json under depenencies
"react-addons-test-utils": "0.14.0",

Lastly, I needed to replace this:
var React              = require('react/addons');
var TestUtils          = React.addons.TestUtils;

with this:
var TestUtils          = require('react-addons-test-utils');
var ReactDOM           = require('react-dom');
var React              = require('react');

Make sure you do an npm clean, install, etc.
Also make sure you have the latest versions of Jest, node 4.X, etc. Pretty confident this should resolve any issues people are having.
Thanks for your help @knowbody

@chiedojohn you're welcome! Would you like to write docs on testing (#2149)?

@knowbody It would be my pleasure. I'll get started on it this week.

Just in any one else runs into this problem, any dependency that installs react-tools will cause the spread operator failure (the "..." is the es6 spread operator). For example, if you require reactify as a dependency it will install react-tools and your tests will fail when you try to import or require react-router.
The reason for this is because react-tools includes its dependencies in a very non-npm friendly way.  If you look inside react-tools you will see the path src/vendor/core/... and this is a list of third party dependencies react-tools needs. This is different from usingnode_modules.
Furthermore, inside react-tools src/vendor/core is a warnings.js in es6 syntax. For whatever reason whenever you run jest tests that require react-tools the test will grab the es6 warnings.js from react-tools instead of the warnings.js that npm installed as part of installing react-router. I have no idea why this happens. I was lucky enough to be able to remove all my dependencies that needed react-tools and sorted out the issue that way.
I doubt that Facebook will make any changes to jest or react-tools that will help out on this specific issue, they don't seem very open to patches. You're options are to require only two of the three dependencies: react-router jest and react-tools. If you need all three your tests wont work based on what I know so far.

Thanks for this particular problem explanation, might be useful :smile:

I doubt that Facebook will make any changes to jest or react-tools that will help out on this specific issue, they don't seem very open to patches sometimes.

@btipling I disagree on that a lot, and think that Facebook is very open to improvements, if you have a chance, ping @cpojer - he works on Jest.

Seems like @chiedojohn has a correct explanation on how to make this stuff work. This is not a jest issue at all. @btipling it would be great if you could elaborate more how any of this is related to jest.
The jest examples contain solutions for how to test react 0.14: https://github.com/facebook/jest/blob/master/examples/react/package.json We are currently in the process of updating this to work great with babel 6 as well.
Also, if you have jest questions feel free to join me on discord: facebook.github.io/jest/support.html :)

Why are you still getting react-tools dependencies? I thought that package was deprecated.


docs: add import statement for defineNuxtComponent

🔗 Linked issue

❓ Type of change

[x ] 📖 Documentation (updates to the documentation or readme)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[ ] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
I had to google how to use defineNuxtComponent
📝 Checklist

[ ] I have linked an issue or discussion.
[ x] I have updated the documentation accordingly.

No need to import, defineNuxtComponent will be auto-imported by Nuxt as well as other build-in functions and utils. The same applies for custom content from /components and /composables
Sometimes VS Code autocompletion ends up importing stuff, but it is not necessary.

Exactly. We prefer to have the docs use the auto-import syntax as much as possible. If you are experiencing any issues with auto-import, please do open an issue or a discussion (or post in Discord) - I'd love to help resolve them.


(PUP-7308) Propagate class tags to admissible whits

Without this patch applied, the admissible whit does not have the same
tags as the initial class. When sending a refresh event to a class and
running puppet with a specific tag, if that class loses it's tags,
then the agent unschedules all the refresh events (because it thinks
the class does not have the tag in question).
This patch copies tags from the initial class resource to the
admissible whit that it gets replaced with.

Closing and reopening, I think the failures may be due to my retargeting.

CLA signed by all contributors.

I think it would also be good to add a test that validates at a higher level that setting this attribute on the whit resource(s) has resulted in the expected resource refresh behavior. A related set of integration spec tests (transaction behavior with tags) exists at https://github.com/puppetlabs/puppet/blob/master/spec/integration/transaction_spec.rb#L269-L341. These could be augmented to validate the scenario.

CLA signed by all contributors.

@MosesMendoza updated with a test.

Oh I put the tests in the wrong spot. Gonna move them to go with the other tag stuff.

This test passes fine for me on my Windows environment...

@puppetlabs/puppet-maintainers anyone want to take a pass at this before I merge?

It looks like I was the one that introduced this regression in https://github.com/puppetlabs/puppet/commit/aadc6245c01414d4ce11a91c55fc228076e94a5c ; I want to review that change and this one more closely to make sure that we're not introducing any regressions by fixing this.

The regressing commit removed some faulty behavior, but that behavior was also making tag propagation work as expected for classes. I believe that this commit will fix that issue without affecting PUP-1106.

I didn't see any acceptance tests that obviously seemed to be impacted (there seems to be very little testing around running with tags in general).


Change StopDriver interface for volume to take all nodes as input

Change StopDriver interface for volume to take all nodes as input instead of just one.
By doing so, Portworx volume driver can stop all nodes first and then enter the static 1 minutes sleep.
Currently we call stop driver one by one and each route sleeps for a minutes leading to a slow test.

Fixed by #132


Add showEditMenuOnSelectRange flag

PR for #254
I've simply added a flag and use it when selecting a range to choose if to show the edit menu or not

Sorry for the late answer.
For sore the name and the comment now look better.
I've tried to use the automatic commit to resolve your suggestions, so I’m not sure if I really did it 🤔

@GiacomoPignoni Thanks for merging the changes in. It seems like SwiftLint is failing. Will you have a look at that? 😊


TextField type="number", treats 1e as an empty value instead of treating it as a wrong input/error

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example:
Steps:

Current behavior 😯

Create a TextField with type="number"
It allows inputs of the form 1e2, 2e3, etc... which is correct
If I stop at 1e, it assumes the value to be empty, and when I move away from the field, if there is a helperText that the developer has set for empty value, it gives that message. This is wrong.

Expected behavior 🤔
It should validate and say that it is not a proper number when the user stops at 1e.
Context 🔦
No response
Your environment 🌎

npx @mui/envinfo
  Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.

@shivasaluvendri We don't recommend using type="number" on a TextField, the issue you raised is just one of many issues with the native number input 😅
See https://github.com/mui/material-ui/pull/39629 for details

Thanks. What else can we use then for number inputs? I see that NumberInput component is still in the beta version of Mui/BaseUI and even that doesn’t allow ‘e’ as input?
Similar validation problem we are facing with input type=”datetime-local” if the user enters 30/02, it becomes tough to validate as it treats it as an empty string. I am assuming we should be using MUIx/DatePickers for that? Thanks.
From: Albert Yu @.>
Sent: Friday, October 27, 2023 2:52 PM
To: mui/material-ui @.>
Cc: Shivacharan Saluvendri @.>; Mention @.>
Subject: Re: [mui/material-ui] TextField type="number", treats 1e as an empty value instead of treating it as a wrong input/error (Issue #39627)
@shivasaluvendrihttps://github.com/shivasaluvendri We don't recommend using type="number" on a TextField, the issue you raised is just one of many issues with the native number input 😅
See #39629https://github.com/mui/material-ui/pull/39629 for details
—
Reply to this email directly, view it on GitHubhttps://github.com/mui/material-ui/issues/39627#issuecomment-1782586558, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOSOQIS73OR4HIDRKELHNXTYBN4K3AVCNFSM6AAAAAA6SMC2PSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBSGU4DMNJVHA.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>
Electronic mail messages entering and leaving Arup business systems are scanned for viruses and acceptability of content.


Fix .env.local additions in .gitignore

Discussed in Discord here.

I'm working on an open source repo that requires contributors to initialize Convex on their local machines. I've noticed a few contributors push code that adds .env.local at the bottom of .gitignore, even though it's already listed above. I think this is being added automatically during the initialization process. Is there a way to disable this, or to improve the .gitignore pattern matching so it doesn't get added?

This PR updates the changesToGitIgnore() function to more robustly check for .env.local (and related variants), accounting for /r on Windows or extra whitespace which previously led to false positives.
New test cases were added to verify the updated conditions.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

After reviewing the .gitignore spec: inline comments with # aren't valid. Comments must always start on a new line. Updated the matching + tests to reflect this.

Thanks for the fix @evadecker! This PR merged in https://github.com/get-convex/convex-js/commit/1af1b7f50e1a0ecfcfe850f51bc804ea41a67f73

@thomasballinger it looks like the last commit in my PR was left out of the merged version.
I had to change some logic because inline comments aren't valid in .gitignore, and I was concerned splitting on # could potentially split a directory or file by mistake (very unlikely but possible)

Oops, thanks. I'll fix that up and fix the script that pulls things into the other repo.


Add npm package to make code-server super simple to install

See https://github.com/cdr/code-server/issues/1306

Please don't use npm for global binaries.

Can you elaborate?

There are better options. In Linux we have apt-get. In macOS and Linux we have Homebrew.

npm installs are slow.
npm is non-deterministic
The package is not signed. This is a big issue.
The only integrity check performed is a basic SHA1 hash, which is a security risk when installing system-wide apps.
Upgrades are not handled the same way as all other software on your system (apt-get upgrade)
The track record isn't great
It's insecure and not designed for global packages. In Homebrew I can look at the actual formula file. With npm you are downloading a tarball from some server which then runs any arbitrary code. Nothing is stopping people from packaging different minimized code than what is in GitHub.

Given all the above, even a shell script would be better.

I think there's some confusion. This issue isn't about making it the sole way to distribute code-server. We'll still keep our releases, docker images and work towards deb/rpm packages #1395. Having an npm package just reduces friction for users who want to try it out.

Hello @nhooyr, do you know when this issue might be addressed ? I'd like to install coder on alpine and it seems npm would be the simplest way.

There's no confusion here. Releasing an npm package just encourages bad practices and there's not a case where it would be easier for your users vs using a proper package manager or a simple install shell script.
@micodeyt why bother? Code Server + a reasonable amount of extensions will put you at about 1-2 GB. Support more than one language, and that grows more. At that point, why go through the hassle of using Alpine for your base image to save 7 MB?
If you throw in adding npm to then install code server,  you've already lost the small size advantage that is Alpine.

There's no confusion here. Releasing an npm package just encourages bad practices and there's not a case where it would be easier for your users vs using a proper package manager or a simple install shell script.

A proper package manager is always better yes, but npm/node is everywhere. Compared to a shell script, you can easily uninstall, list installed global binaries etc and have it already in your $PATH so it is an improvement.
We're still moving forward with the Debian releases/repo and a PPA but this will be a nice crutch for when you just want to quickly install.
You can test it out now:
yarn global add @coder/code-server

For me the build is failing on installation.
Have you considered installing already built version with npm/yarn? That would also make installation faster.

@gyzerok Can you try again, it's been merged and in the README.md now: https://github.com/cdr/code-server#npm
Re installing build versions with npm/yarn see https://github.com/cdr/code-server/issues/1641


Converts Database Table Names to lowercase

Upon generating the files, it converts table names to lower case, so for example a table names "Menu" is converted in the php files as "menu" and it creates errors.

Thanks @malebuffy , I'll take a look on that.


A feature like cargo search

So I've tested the Rust package manager and it has a nice feature to search available packages.
$ cargo search gl
Updating registry `https://github.com/rust-lang/crates.io-index`
gfx_gl (0.1.4)           OpenGL bindings for gfx, based on gl-rs
gl_common (0.0.4)        Common glue for libraries using gl-rs
gl_generator (0.0.27)    Syntax extension for creating bindings to the Khronos OpenGL and related APIs
gl (0.0.12)              OpenGL bindings
gfx_device_gl (0.5.0)    OpenGL backend for gfx-rs
glutin (0.3.5)           Cross-plaform OpenGL context provider.
kugel (0.0.2)            Rust-oriented OpenGL wrapper.
khronos_api (0.0.8)      Khronos API XML descriptions for gl_generator
freetypegl (0.1.0)       Rust build helpers and bindings for freetype-gl.
nice_glfw (1.0.1)        Create a modern GL context with glfw

It's also nice that it says when its package list cache is updated.

The easiest way of doing this is to make use of the dub-registry api.
I went some way towards that, but never finished it, I'll put it higher to the top of my to-do list.

Maybe there is something both simpler and more useful.
The dub registry command would simply opens http://code.dlang.org

the registry page is already designer for package discovery, searchable, and have categories
it is very common to want to reach this page to bump the version of a managed package

It's fairly easy to implement b/c dub-registry already has a better search functionality now. The only thing needed is to integrate it with the API.

Implementation done, still waiting for https://github.com/D-Programming-Language/dub-registry/pull/121 to be deployed.

Deployment is done now.

Deployment is done now.

Nice, tests pass as well.

Yay!

I left-justified the package names and versions for better readability.
Now we only need a xapian binding for better search results ;).

Okay, looks good.

I added a call to .array to avoid the map.filter chain in Dub.searchPackages to execute the GET request multiple times.


Code fences do not work inside details tags

Describe the Bug
Code fences don't work inside  tags
Steps to Reproduce

Open a markdown editor
Add a detail block
Add a code block under the summary:

  Code Block
  ```python3
  print("Hello, world!")
  ```

Expected Behaviour
The code block should parse correctly. My solution is to insert the html:

Code Block

print("Hello, world!")

Screenshots or Additional Context

vs

Browser Details
Chrome 117.0.5938.62
Exact BookStack Version
v23.06.2

Hi @GammaGames,
From my testing, these do work, but the code block has to be seperated from the HMTL tags with an empty line, for example:

  Example

  ```python3
  print("Hello, world!")

```
This follows the commonmark spec, as reflected in the demo here.

Thank you so much, I should've tried more options with whitespace!


Add scripts for CI

Status
Validated, need to review.

I am reviewing this myself because I'm responsible for the CI system for this project.


feature: Basic auth for web console

Hi,
I did not want everyone to read the data I wrote to the tasks, and encrypting and decrypting this data slowed down my application. For this reason, I researched whether there was a basic auth option and came across this. #78
When I saw that it was not yet available, I wanted to make an improvement for this application  and I added basic auth.
Features:

Basic auth

Hey @hibiken, are you interested in this pr?
I think there are a lot of people who need it :)

Hey @hibiken, are you interested in this pr?
I think there are a lot of people who need it :) #78

thx for the PR. I think this should be merged but its the author's wish, however, I will be using this in my code. thx a lot

any update???

I've found another solution, without modifying the based code. Given the example with gorilla mux.
First - create asynqmon handler
var h = asynqmon.New(asynqmon.Options{
	RootPath: "/monitoring",
	RedisConnOpt: asynq.RedisClientOpt{
		Addr:     "localhost:6379",
		DB:       0,
		Password: "",
})

Second - create gorilla mux sub-router with your middleware and attach handler for that route.
monitoring := r.PathPrefix(h.RootPath()).Subrouter()
monitoring.Use(isAuthenticated, isAuthorised, exampleMiddleware)
monitoring.NewRoute().Handler(h)

[!IMPORTANT]
It is important to use NewRoute(), in order to be able to attach he handler.

Bellow is the exampleMiddleware where you can add your logic.
var exampleMiddleware = func(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		allowed := true

                 if !allowed {
                 	w.WriteHeader(http.StatusForbidden)
                 	return
                 }

		next.ServeHTTP(w, r.WithContext(ctx))

	})
}


Convert Profile Image component to CSS modules

Issue Description
To better align with modern CSS practices and modern CSS theming capabilities, we want to update this component to use CSS modules and if applicable, CSS custom properties.
Issue Type

[ ] New Feature
[X] Enhancement
[ ] Bug
[ ] Other

Expected Behavior
Component styles are converted to use CSS modules. If applicable, convert SCSS variables to CSS custom properties.
Current Behavior
Component styles use manual name spaced classes and SCSS variables.

Released in terra-profile-image v1.1.0


Ability to set individual display components to be drawn to rounded pixels

Ability to set certain display components to be drawn to rounded pixels, independent of the global roundPixels renderer setting.
We get constant reports of Text looking blurry in Pixi
http://www.html5gamedevs.com/topic/33309-can-pixi-create-pixel-perfect-text-in-a-scaled-container/
http://www.html5gamedevs.com/topic/30018-blurry-text-after-scaling/
http://www.html5gamedevs.com/topic/29576-scalable-text-for-pixijs/
http://www.html5gamedevs.com/topic/27810-text-objects-are-blurry/
http://www.html5gamedevs.com/topic/26880-blurry-text-in-pixijs/
http://www.html5gamedevs.com/topic/23136-how-to-disable-font-antialiasing/
https://github.com/pixijs/pixi.js/issues/4242
https://github.com/pixijs/pixi.js/issues/3263
etc. etc.
And the solution is always 'draw to whole pixel positions and it looks a lot sharper'. Which is true.
So this PR adds a 'roundPixels' property to Sprite and some components that inherit from Display Objects. roundPixels is a property that was already found in some Display Objects, so it's not a new usage, just extending it.
And then for the render plugins, it checks if either the roundPixels property is set on the renderer OR on the display object. I've set only set roundPixels to true by default for Text and Bitmap text, so they will always look as sharp as possible.

(happy to turn off by default for text if we're worried about backwards compatibility and the expectation for text to look the same as it already is, and have this as an idea way to opt in on certain pieces of text that have issues)

Cool app

@ivanpopelyshev This PR definitely improves the visuals of Text whilst not touching the visuals of regular sprites.
@bigtimebuddy I'm happy to do that. I'll be staying on v4 for a while after v5 is released, so I need to get into the habit of submitting any of my pixi v4 enhancements to official pixi v5 :)
Could close this PR and then point to it in the FAQ to let others know how to solve this issue for v4?

I'm against changing behaviour for v4 because people solve this problem differently, and my solution includes extra arithmetical operations, i dont see them in this commit.
Please add this workaround to the wiki (GOTCHAS)


"React.createClass is deprecated and will be removed in version 16. Use plain JavaScript classes instead."

Prepare for React 16 compatibility.

I think we can extend this issue with mixin property.
It is also deprecated, and it is not possible to use mixins in Pure functional components.

I'm sorry, but what about mixin? mixins also deprecated, and whole thing with createReactClass is temporary I hope? It is like you get rid of symptoms instead of curing the sickness. Can you provide better architecture please?

@JustFly1984 This project is no longer actively maintained, thus no architecture refactor will be operated (although PRs are always welcomed)

React 16 was released ;)


How to use replace string (or increase numberic) in files

Hi Beverad,
Thanks for your hard work. I like your app a lot but honestly after watch your guide video, I still dont know how to use Bulk upload function because it still does not have enough information. I can draft quickly like this:

I have input folder includes:

my_animation_clip_001.mp4 (this is my video)
my_animation_clip_001.jpeg or my_animation_clip_thumb_001_part.jpeg  (this is my thumbnail)
How to ensure the pair of video and thumb will be used correctly?

I have 50 - 100 videos, their names will be like this 002 up to 100.mp4 and 002 up to 100.jpeg
How can I setup automatic for Title like: My Daily Animation Clip - Part 001 up to My Daily Animation Clip - Part 200
and same for description

You can give some screenshots or what can make you give it clear.
Thank you very much.

Hey @emourdavid, so sorry for the super slow reply on this, I've been a bit overwhelmed with work recently and I'm only just starting to get on top of my inbox.
What have you tried so far? The Dry Run checkbox is there to help you experiment with the options until it works for you :)
If you'd like a bit more help setting it up / getting it working for you, let me know a few good dates/times for a video call and I'll hop on a call and walk you through it - feel free to email me<EMAIL_ADDRESS>We can then improve the docs to help future folks like you :)


Is there a business key generator ?

Hello Camunda team :)
Are there ready function to generate a business key to start my process via Rest in PHP ? I asked on Camunda forum, but for the moment I have only JS examples, no PHP.

The Api Camunda not generate Business key , you generate !


Unable to add repo through Home Assistant

I suspect it's because it's missing the repository file described here: https://developers.home-assistant.io/docs/add-ons/repository/
Here are the errors from the home assistant log:
21-04-22 16:14:21 ERROR (MainThread) [supervisor.store] https://github.com/RobertD502/home-assistant-flair is not a valid add-on repository
21-04-22 16:14:21 INFO (MainThread) [supervisor.resolution.module] Create new issue IssueType.CORRUPT_REPOSITORY - ContextType.STORE / e5cc386e
21-04-22 16:14:21 INFO (MainThread) [supervisor.resolution.module] Create new suggestion SuggestionType.EXECUTE_REMOVE - ContextType.STORE / e5cc386e
21-04-22 16:14:21 WARNING (MainThread) [supervisor.store.data] No repository information exists at /data/addons/git/e5cc386e
21-04-22 16:14:23 INFO (MainThread) [supervisor.store] Loading add-ons from store: 66 all - 0 new - 0 remove
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.fixups.store_execute_remove] Remove invalid Store: e5cc386e
21-04-22 16:14:23 INFO (MainThread) [supervisor.store.git] Removing custom add-on repository https://github.com/RobertD502/home-assistant-flair
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.check] Starting system checks with state CoreState.RUNNING
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.PWNED/ContextType.ADDON
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.FREE_SPACE/ContextType.SYSTEM
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.SECURITY/ContextType.CORE
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.check] System checks complete
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.fixup] Starting system autofix at state CoreState.RUNNING
21-04-22 16:14:23 INFO (MainThread) [supervisor.resolution.fixup] System autofix complete

I believe you're trying to add the repo through the Home Assistant supervisor tab. The repo can only be added through HACS (Home Assistant Community Store).

Glad you got it working!


[WIP] Time travel redesign

Resolves #2608.

@fbarl Please could you add the final screenshot/mockup of the parts you're implementing in this phase?

@pidster @rade I'm using this mockup as my main reference for this PR, but I think there will be some tiny changes to the wording and spacing.
FYI @bia is already sketching a new version that we might want to switch to when we add some metadata (thus transforming slider into a real timeline).

Here's a particular use case I'd like us to be able to support: "binary search" to pinpoint when the system transitioned from a "good" state to a "bad" state, for example as a result of me discovering some hitherto hidden anomaly now, and suspecting that it may well have been around for a very long time.
I should be able to do that only using the controls, without having to do mental time arithmetic.
Here' roughly how I would envisage that to work...

on a coarse-grain view of the timeline, e.g. covering the past 12 months, click on the left most point to get a view of the system at that stage. Let's assume it is in a "good" state.
click on a point roughly half-way.
a. if the system is in a good state at that point, then select the region between that point and the right-most point
b. if the system is in a bad state at that point, then select the region between that point and the left-most point
making the selection in the previous step, changes the timeline to be zoomed into exactly the window selected.
go back to step 2; repeat until the resolution of the window is fine enough for me to claim to have pin-pointed the good->bad transition with sufficient accuracy

There are obviously other ways of doing this. The two crucial underlying capabilities are:

dynamically changing the duration covered by the displayed timeline - i.e. zoom
dynamically changing the "position" of the timeline, i.e. pan

It's not obvious to me that the new controls support that; do they?

It's not obvious to me that the new controls support that; do they?

I would say that purely visual binary searching will be very simple to do with the slider I'm implementing in this PR - up to a certain precision. Pinpointing the exact timestamp on a slider will be hard because there won't be any zooming functionality in this version.
Obviously zooming and panning through the timeline/slider will become even more important once we start adding metadata and that's why we're already planning to include it in the UI next iteration. @bia just started working on it, but you can see her initial prototype here. The idea would be that the timeline would replace the current slider and create a space inside it for the metadata. The timeline would be both zoomable and pannable.

@rade @fbarl One of the main themes for us to tackle is to make visible 'interesting' moments in someone's history. These can be things like downtime in the system, or anything else that we'd eventually like to display as metadata. But before we get to that point and before we are able to zoom into the timeline to get more granularity, we could address this issue using the metaphor of a 'scan' button on a car radio.
Say that your timeline ranges from 1t - 10t. Maybe interesting things have happened at 1.22t, 1.73t, 3.01t, and 4.00t. In that case, the slider could automatically snap to those timestamps instead of any arbitrary subdivision of your history.

Making interesting moments visible in the timeline is no substitute for exploration. There can be all kinds of interesting events/conditions a user may be looking for that Weave Cloud hasn't captured explicitly.
So, make exploration work well first, then add interesting events.

Another way to think about this is the "video editing" metaphor, where a "visible window" can pan and zoom over a line, and the focus can be positioned within it.
-----------[-----o-----]-----------
-----------[----------o-----------]
----------------[-----o-----]------
----------------------------[--o--]
----------------------------[----o]

Looks slick! Simple a and clean, nicely done.
Niggles:

I tried to toggle the timetravel button: after it slides open the panel I assumed I could click it again to slide it away. I had to think about how I could make it disappear again.
I got stressed by the "busy" cursor that appeared as soon as I started dragging. Maybe show that onMouseUp when stuff starts happening.
Not a biggie but I'd prefer a "Go!" button next to the textfield, if I'm using it I'm probably making a couple of changes and it feels a bit hectic things changing around as you're trying to enter a value.
timestamp is truncated a tiny bit for me :).
Not sure about "live", but can't think of anything else right now.

Future designs?

Show the date next to the mouse pointer when dragging? Bit of eye flicking there.

@foot I addressed only your first comment, the rest will be considered in #2677, so I'll move the discussion there.


Add module for JWT validation and parsing

Task/Issue URL: https://app.asana.com/0/1205648422731273/1208669762068505/f
Description
This PR adds new module that will be responsible for parsing and validating JWT tokens issued by auth API v2.
Steps to test this PR
There are no usages of the new module yet, so nothing to test.
No UI changes

#5223  👈
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @lmac012 and the rest of your teammates on  Graphite


Full fine-tuning with llama.cpp

When using GGUF and llama.cpp, is there a specific vocab file I should use, or can I use "ggml-vocab-llama.gguf"?
The number of kv groups is different in TinyLlama so I suspect that I need to use a custom vocab file, but I'm unsure.
I've been trying to fine-tune but the model isn't loading correctly. I've posted the training script on the llama.cpp repo here.

The vocab file should be the same as Llama. KV groups do not impact the tokenizer.


Can't run on Java 10

Exeptions:
Exception in thread "main" java.lang.RuntimeException: We have detected that you are JRE version 10.0.1, which is out of date!
In order to run Sponge, you **must** be running JRE version 1.8.0_20 (or above).
Previous builds of JRE version 1.8 will not work with Sponge.
This can be downloaded from Oracle: http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
        at org.spongepowered.launch.JavaVersionCheckUtils.ensureJava8(JavaVersionCheckUtils.java:49)
        at org.spongepowered.server.launch.VersionCheckingMain.main(VersionCheckingMain.java:37)

Java version:
PS G:\PLUGINS\TEST\sponge_> java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

Why did you close this? To help people having similar issues in the future, please share your solution here.

@lemmmy read the body of the messae. sponge needs jre version 1.8.

@Cybermaxke already was, op is just not using any recent version


AzureWebAppContainerV1: Add multiline support

Task name: AzureWebAppContainerV1
Description: support \n caracter for multiline
As some other Task (example : AzureFunctionAppV1) use appsettings parameter : Add multiline support.
I suggest to use \n as space (mandatory). It's better for readibility. A space is not visible and easy to forget it.
It's also more consistent with other tasks.
Documentation changes required: (Y/N)
Added unit tests: (Y/N)
Attached related issue: (Y/N)
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

/azp run

/azp run

/azp run


[BUG] Genshin Impact Global not refreshing events, notices and info

Like the title says, Genshin Global fails to get Events, Notices and Info

Uhm, I don't see it as a problem and this is actually an "expected" behaviour of the launcher when the API doesn't have Events or Info or other section to show on and will be replaced with Paimon instead.
As you can see in the screenshot below, the official launcher (left) doesn't have Events and Info to show on.

Btw, I'm using the latest version of the official launcher, which is <IP_ADDRESS>

Since this is not actually a bug, I will go ahead to close this issue instead.


The Navigated event is fired by the overridable OnNavigating method in the Shell class.

Documentation says:
"The Navigated event is fired by the overridable OnNavigating method in the Shell class."
"The Navigating event is fired by the overridable OnNavigated method in the Shell class."
Shouldn't it be:
"The Navigating event is fired by the overridable OnNavigating method in the Shell class."
"The Navigated event is fired by the overridable OnNavigated method in the Shell class."
?
Which isn't the case anyway for OnNavigated method, since this method is empty in Shell class.

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

ID: b6efe82d-a8b9-82a8-7d38-98f2f8d5e682
Version Independent ID: 28d7341e-ae6e-6321-6550-d27ae6b256d2
Content: Xamarin.Forms Shell Navigation - Xamarin
Content Source: docs/xamarin-forms/app-fundamentals/shell/navigation.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @viktorszekeress
You may have been right, but as you've also pointed out, the overrides don't fire the events anymore so I've removed the two notes from the doc (in a PR that will go live later in the week).
Thanks for pointing this out!


Make musicbot into a systemctl service

currently wont run as a service because it cant find the options.ini file

I've been running my bot as a systemd service without any problems for over 2 months. You did setup the options.ini file before trying to run the bot, right?

Yes my ini file is setup but I run the service file in system folder. Guess
I should run it in the root musicbot folder?
On Apr 8, 2017 6:05 PM, "OmgLolOmgLol"<EMAIL_ADDRESS>wrote:

I've been running my bot as a systemd service without any problems for
over 2 months. You did setup the options.ini file before trying to run the
bot, right?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Just-Some-Bots/MusicBot/issues/1044#issuecomment-292748821,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB3SM4fYWWMrG-eHR-2o2Smk4_juRPqcks5ruASagaJpZM4Mzn6m
.

Hey guys, theres no need to run it as a service, use Task Scheduler to run the program for you and it will run it as a background process. Then you don't have to do any work or deal with it.

We were talking about running it as a systemctl on Linux. Task Scheduler is a Windows thing lol.
I used the systemctl method from Redbot to run my musicbot, this is my file atm
[Unit]
Description=Musicbot
After=multi-user.target
[Service]
WorkingDirectory=<path to bot's directory>
User=<user to run as>
Group=<user to run as>
ExecStart=<path to bot's run.py> --no-prompt
Type=idle
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Hey did you ever get this working 100%?

We were talking about running it as a systemctl on Linux. Task Scheduler is a Windows thing lol.
I used the systemctl method from Redbot to run my musicbot, this is my file atm
[Unit]
Description=Musicbot
After=multi-user.target
[Service]
WorkingDirectory=<path to bot's directory>
User=<user to run as>
Group=<user to run as>
ExecStart=/usr/bin/python3.5 <path to bot's run.py> --no-prompt
Type=idle
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

I got the service started and running, however, it starts silent. i have to .restart the bot to get it to be audible.
[Unit]
Description=music bot
After=multi-user.target
[Service]
WorkingDirectory=/home/bots/musicbot
User=bots
Group=bots
ExecStart=/home/bots/musicbot/run.sh
Type=idle
Restart=always
RestartSec=1
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=musicbot
[Install]
WantedBy=multi-user.target

cat /etc/systemd/system/musicbot.service
[Unit]
Description=musicbot
After=network.target

[Service]
Type=idle
User=musicbot
Group=musicbot
ExecStart=/web/musicbot/run.sh
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -QUIT $MAINPID
Restart=always
TimeoutSec=10

[Install]
WantedBy=multi-user.target

This will be added in the next release.


Added a check in both front-end and back-end for the expiry and effective dates

#1054
Added an additional validation to make sure that the expiry date is always after the effective date.
Changelog:

Added a front-end check to make sure the expiry date is after the effective date
Added a back-end check to make sure the expiry date is after the effective date when creating or updating

 Fuel Codes | Expiry date must be after Effective date |1|

Thanks, Rob!


fix(svelte): asset path generation

More info at #111

Looks like Yarn is having trouble fetching rxjs, causing GHAction nxext macos CI / setup to fail 🤔
...
There appears to be trouble with your network connection. Retrying...
An unexpected error occurred: "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.2.tgz: ESOCKETTIMEDOUT".
...
Error: Process completed with exit code 1.
...

Hi, thanks for your PR. I scheduled a re-run of the action. That's some times, and I think mostly a problem with githubs cache machines.


Local CodeURI in globals generates an enormous deploy package

Description:
If I have a template pointing to a zip file in all of my functions if I specify CodeUri in each, the uploaded zip file is ~48K; however, if I put it in globals, aws cloudformation package causes a 19MB zip file to be uploaded. Seems like a bug :-/

Steps to reproduce the issue:
i.e., this causes a 19MB file to be uploaded:
Globals:
  Function:
    Runtime: python3.6
    CodeUri: ./output.zip
Resources:
  Func1:
    Type: AWS::Serverless::Function
  Func2:
    Type: AWS::Serverless::Function
  Func3:
    Type: AWS::Serverless::Function

and this template causes a 48K file to be uploaded:
Globals:
  Function:
    Runtime: python3.6
Resources:
  Func1:
    Type: AWS::Serverless::Function
    CodeUri: ./output.zip
  Func2:
    Type: AWS::Serverless::Function
    CodeUri: ./output.zip
  Func3:
    Type: AWS::Serverless::Function
    CodeUri: ./output.zip

Observed result:
$ aws cloudformation package ...
<snip>
Uploading to <key>  18379195 / 18379195.0  (100.00%)
<snip>

Expected result:
(what you see when you put CodeUri into each function)
$ aws cloudformation package ...
<snip>
Uploading to <key>  46693 / 46693.0  (100.00%)
<snip>

This repo is centered around SAM, the code that transforms SAM Resources into CloudFormation. You are describing an issue with the aws cli. Please create an issue in there repo.
Closing since this issue is an aws cli issue not SAM.

Gotcha -Thanks for the clarification - (I thought this had to do with the
SAM transformation.)
On Thu, Apr 12, 2018 at 6:05 AM Jacob Fuss<EMAIL_ADDRESS>wrote:

Closed #383
https://github.com/awslabs/serverless-application-model/issues/383.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/serverless-application-model/issues/383#event-1570928768,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABhjq75SbaowWf_0rpN5fS2-Bwv9_y1Zks5tn1EJgaJpZM4TRLFO
.


1581 data entry

I believe I've resolved issue 1581. I finalized with i18n-tasks and everything looks good!

😻
thank you @jpkarvonen for knocking this work out! We're happy to have you on this project.

Something is severely wrong with our CI here. @colinxfleming what are your thoughts here? I can create a branch off of the main repo and cherrypick the commits, or we could just smash merge and fix  potential failures off of master?
I've never dealt with this particular circleCI issue. Googling just brings up the last time we saw this issue :(
(@jpkarvonen this isn't your doing, btw. This weird bug pops up sometimes on forked repo PRs)

Thanks, @colinxfleming and @lomky ! I enjoyed contributing and I look forward to seeing y'all at the next meet up. Good luck getting the tests up and running!


Clean does not use schema instance options v.2

it's related to #123
@aldeed
I've researched your code and I found the place where "clean" options are rewriting.
Have a look here
https://github.com/aldeed/node-simple-schema/blob/master/lib/clean.js
lines are 33/34
if you swap these line - it resolve a problem with "removeEmptyStrings".
I tried it locally and it works as expected.

This works with the original example I posted in #123.

@immersivedan I tried to use "removeEmptyStrings" and it doesn't work, because
}, ss._cleanOptions, options);
default "options" rewrite our "_cleanOptions"

I mean to say, making the change that you suggest in the first post allows the insert to occur as expected. An empty string is inserted as the value for a new entry, and I can upsert an empty string to existing entries as well.

@aldeed could you fix it?


Is it possible to clip diffs according to a polygon?

Hello,
We are interested only for a small region of central europe. We can extract it from planet file and use it for OVERPASS_PLANET_URL. Is it possible to apply our clipping polygon from GeoJSON file to minutely diffs?

As mentioned in #37 (in this comment) this would need small refactor to preprocess both planet file on init and continue to do the same when applying diff. I hadn't had time to do it myself, but I will happily welcome any patches implementing that.


Update golang-otlp example to use 0.17 otel release

I'm actually going to close this, as it's covered in https://github.com/honeycombio/examples/pull/53


Age restricted videos not working with oAuth2 in v6

Describe the bug
Unable to get age restricted videos when using oAuth2 and poToken
Error Details (Log)

Using the following code with environment variables in place for sensitive data.
export async function streamYouTubeAudio(url: string) {
  const ytdl = new YtdlCore({
    'oauth2Credentials': {
      'accessToken': process.env.OAUTH_ACCESS_TOKEN,
      'refreshToken': process.env.OAUTH_REFRESH_TOKEN,
      'expiryDate': process.env.OAUTH_EXPIRY_DATE,
    },
    'poToken': process.env.PO_TOKEN,
    'visitorData': process.env.VISITOR_DATA,
    logDisplay: ["debug", "info", "success", "warning", "error"]
  });

  return toPipeableStream(await ytdl.download(url, {
    filter: 'audioonly', quality: 'highestaudio', highWaterMark: 1 << 25
  }));
}

[  DEBUG  ]: [ FileCache ]: Cache key "html5Player" was available.
[  DEBUG  ]: [ FileCache ]: Cache key "poToken" was available.
[  DEBUG  ]: [ FileCache ]: "poToken" is cached.
[  DEBUG  ]: [ FileCache ]: Cache key "html5Player" was available.
[ WARNING ]: Specify poToken for stable and fast operation. See README for details.
[  INFO!  ]: Automatically generates poToken, but stable operation cannot be guaranteed.
[  DEBUG  ]: [ FileCache ]: Cache key "visitorData" was available.
[ WARNING ]: At least one client must be specified.
[  DEBUG  ]: [ FileCache ]: "visitorData" is cached.
[  DEBUG  ]: [ Request ]: POST -> https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false
[  DEBUG  ]: [ Request ]: POST -> https://www.youtube.com/youtubei/v1/player?key=AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc&prettyPrint=false&id=_ynaX7PtJe0&t=qbTQI8Rgjz98
[  DEBUG  ]: [ Request ]: POST -> https://www.youtube.com/youtubei/v1/player?prettyPrint=false
[  DEBUG  ]: [ Request ]: POST -> https://www.youtube.com/youtubei/v1/next?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false
[  DEBUG  ]: [ FileCache ]: Cache key "oauth2" was available.
[  DEBUG  ]: [ FileCache ]: Cache key "html5Player" was available.
[  DEBUG  ]: [ FileCache ]: "oauth2" is cached.
[  DEBUG  ]: [ Request ]: POST -> https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8&prettyPrint=false
[  DEBUG  ]: [ Web ]: Error (Reason: Sign in to confirm your age)
[  DEBUG  ]: [ MWeb ]: Error (Reason: Sign in to confirm your age)
[  DEBUG  ]: [ Tv ]: Error (Reason: Sign in to confirm your age)
[  DEBUG  ]: [ Ios ]: Error (Reason: This video may be inappropriate for some users.)
[  ERROR  ]: All player APIs responded with an error. (Clients: web, mweb, tv, ios)
For details, specify `logDisplay: ["debug", "info", "success", "warning", "error"]` in the constructor options of the YtdlCore class.
[  INFO!  ]: Only minimal information is available, as information from the Player API is not available.
[  DEBUG  ]: [ Next ]: Success
[  DEBUG  ]: [ FileCache ]: Cache key "html5Player" was available.
[  DEBUG  ]: [ FileCache ]: Cache key "poToken" was available.

Similar code works with version 5.1.9-2 as follows
export async function streamYouTubeAudio(url: string, cookie: string) {
  const NORMAL_OAUTH2 = new YtdlCore.OAuth2({
    'accessToken': process.env.OAUTH_ACCESS_TOKEN,
    'refreshToken': process.env.OAUTH_REFRESH_TOKEN,
    'expiryDate': process.env.OAUTH_EXPIRY_DATE,
  });

  const ytdl = new YtdlCore({
    'oauth2': NORMAL_OAUTH2,
    'poToken': process.env.PO_TOKEN,
    'visitorData': process.env.VISITOR_DATA
  });

  return ytdl.download(url, {
    filter: 'audioonly', quality: 'highestaudio', highWaterMark: 1 << 25
  });
}

I'm thinking I must be doing something wrong when passing my credentials or oAuth isn't working as intended. Documentation for v6 is fairly sparse
Environment

Video URL: https://www.youtube.com/watch?v=_ynaX7PtJe0
@ybd-project/ytdl-core version: 6.0.8
Node.js version: 22.11.0
Operating system: Windows 11

Thank you for your report. We will investigate this issue.


Versioning feature (How was the dataset edited, history of changes)

@Daniellappv what was this exactly about?

we can prob close this or put to Someday maybe. Github already has version control, we don't need to add the same feature to dhc @olayway


resize vector image in the home page

@Bawanthathilan need to resize the images in the home page too


SASL Connection Issue with SASL_SSL + PLAIN

Describe the bug
I have an use case where I am interacting with a cloud provider's kafka implementation and they set up client access with mechanism PLAIN and  protocol SASL_SSL. There are no provided SSL certs or anything and it does not accept SASL_PLAINTEXT configuration.
There seems to be an issue with how sarama and or the broker is configured that does not allow sarama to connect to the broker in this configuration as it fails with Failed to read SASL handshake header: EOF. Maybe this is due to a self signed certificate? I am unsure.
I have found a fix that can configure sarama to connect to this configuration. Even though this is SASL_SSL and PLAIN, TLS needs to be enabled and InsecureSkipVerify needs to be enabled. No Certs need to be provided to the TLS configuration.
Expected behavior
Sarama and by proxy Eventing-Kafka should be able to connect to the brokers by exposing the ability to configure TLS and InsecureSkipVerify even if TLS is not used.
Maybe we can expose InsecureSkipVerify on either the NET.TLS configuration or on NET.SASL that would configure TLS enabled and InsecureSkipVerify if configured.
https://github.com/knative-sandbox/eventing-kafka/blob/2b185a9b59347cc4a16471ed0fb2ba3bdf6e1672/pkg/source/client/client.go#L72
https://github.com/knative-sandbox/eventing-kafka/blob/ee1f70166dd0421eebc14f48367f0417c401eea1/pkg/common/client/config.go#L224

@maarek here is what we have for the channel:
https://github.com/knative/docs/pull/3493/files

For the source I used it in the past like:
apiVersion: sources.knative.dev/v1beta1
kind: KafkaSource
metadata:
  name: kafka-source
spec:
  bootstrapServers:
    - come-at-me-bro.some.kafka:443
  topics:
    - matzew-test-topic
  net:
    sasl:
      enable: true
      user:
        secretKeyRef:
          name: my-sasl-secret
          key: user
      password:
        secretKeyRef:
          name: my-sasl-secret
          key: password
    tls:
      enable: true
  sink:
    ref:
      apiVersion: serving.knative.dev/v1
      kind: Service
      name: ping-display

also, I had no SSL certs for the service


Use list-initialization to zero-initialize 'JoystickImpl.hpp' structures

Description
This PR introduces the first changes that actually require C++11 support to the codebase. It's a simple refactoring changes that removes a public dependency on <algorithm> and simplifies the initialization of some data members in JoystickImpl.hpp.
Tasks

[ ] Tested on Linux
[x] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
CI and testing existing joystick examples would be enough.

The problem with aggregates is that they allow partial initialization, and that order of fields matters.
It's typically not helpful to initialize only the first N fields (and leave the others to defaults), such as
JoystickState state{false};

and I think we should definitely not allow it for types in the public API.
That said, it might be OK for internal ones, but I also don't see much benefit to be honest. It's typically less error-prone if a constructor ensures that all fields are provided with a value, especially in light of future refactorings (adding fields).
Inline initialization for members looks good (instead of std::fill() etc), and it's a bit weird that we hadn't just used the constructor initializer list before.

The problem with aggregates is that they allow partial initialization, and that order of fields matters. It's typically not helpful to initialize only the first N fields (and leave the others to defaults), such as
JoystickState state{false};

I agree with that, but we should also be pragmatic about it. A small internal type such as JoystickState is very unlikely to end up being used incorrectly in a way that's not caught by testing or during developmet.

and I think we should definitely not allow it for types in the public API.

I'm not too sure about that. For example, sf::Vector2<T> and sf::Color are great candidates for public-facing aggregates. We would simplify the implementation, get constexpr support for free, and it would allow users to use designated initializers:
sf::Vector2f v{.x{10}, .y{15}};
sf::Color c{.r{255}, .g{255}, .b{255}, .a{100}};

That said, it might be OK for internal ones, but I also don't see much benefit to be honest. It's typically less error-prone if a constructor ensures that all fields are provided with a value, especially in light of future refactorings (adding fields).
Inline initialization for members looks good (instead of std::fill() etc), and it's a bit weird that we hadn't just used the constructor initializer list before.

True, we could have just used C++98 value-initialization in the constructor. I am happy to re-introduce a constructor if you strongly feel that it should be done, but I honestly don't think it's a big deal in this particular situation.

As mentioned, for internal types I don't have a very strong opinion. If we see that one way (either aggregates or classical constructors) cause issues, we can always refactor. That said, I would not go on a hunt now to change all the signatures -- after all, being pragmatic also means that things which are already written and well-working don't have priority in being updated 😉

I'm not too sure about that. For example, sf::Vector2<T> and sf::Color are great candidates for public-facing aggregates. We would simplify the implementation, get constexpr support for free, and it would allow users to use designated initializers:
sf::Vector2f v{.x{10}, .y{15}};
sf::Color c{.r{255}, .g{255}, .b{255}, .a{100}};

I disagree here. First, this is a very convoluted syntax, hardly anyone would use it over
sf::Vector2f v(10, 15);
sf::Color c(255, 255, 255, 100);

especially since these 2 classes are so central to SFML (or even gamedev in general), that no one will accidentally confuse the order and try to construct an YX-vector.
Second, this is a trade-off and would allow constructions like
sf::Vector2f v{10};
sf::Color c{255, 255};

which are highly misleading, and our job as API designers to inhibit.
In general, we should consider practicability and user-friendliness when switching over to C++17 features, and not only do it because it's possible or more modern.


Sandbox deploy

empty database, just one admin user

Robert: do not empty the database, leave it as it is now. I am closing the issue since the sandbox is working.


Supporting yarn

Is there any way to configure the install scripts to use yarn rather than npm?
It seems like currently the install script using npm is hard-coded for almost every language server.

Yes, this can be done.
Example:
! test -f package.json && yarn init -y --scope=lspinstall || true
yarn add bash-language-server@latest

You just need to substitute install with add

Well this would have to be done in every lsp install script?

AFAIK, the yaml lsp is written with yarn in mind.
Maybe we could implement a check to see whether yarn or npm is installed first, prior to running the install script and implement logic from there.

AFAIK, the yaml install script was written with yarn in mind.
Maybe we could have the system check for npm or yarn prior the running the install script, and implement logic from there.

what would be the benefit?

I've been thinking about it for the past few hours, and it's kind of redundant to do this. Part being that yarn is typically installed via npm on non-Unix systems.

Well...
The benefit will be that there is a faster install on systems with Yarn.
Also if the systems only have Yarn and not NPM, then the whole plugin fails.
@derektata I am not sure about non-UNIX systems, but I know that it can be common to install only yarn on Linux based systems. I guess it eventually comes down to a users preference. But the whole plugin should not stop working because of that.

npm is almost always installed when yarn is installed. I haven't noticed faster install times when installing a single package.

@kabouzeid, I can understand where @ssbanerje is coming from when it comes to only having one installed.
So I have an idea
  if [ ! -x $NPM ] && [ ! -x $YARN ]; then
    # if npm and yarn are not on the system
    printf "\nCan't find npm or yarn on the system\n"
  elif [ ! -x $NPM ]; then
    # if npm is not on the system
    printf "\nNpm not found..."
    # run yarn script
  elif [ ! -x $YARN ]; then
    # if yarn is not on the system
    printf "\nYarn not found..."
    # run npm script
  fi

Okay, so after testing this code, it seems there are some compatibility issues when using yarn with some packages, so it's safer to use npm to avoid running into those issues.

Okay so after testing this code, I'm running into node versioning incompatibilities when using yarn, but that doesn't seem to be a problem when using npm.

@derektata That can be an annoying problem to fix! But it is really interesting that the npm is not doing this check given its in the package file (https://github.com/angular/vscode-ng-language-service/blob/3014713e18398fbec4773686d989ad11d48f2952/server/package.json#L11-L13).
@kabouzeid Yeah. I think it is a yarn 1.x vs 2.x thing. Yarn would provide deb/apk for previous releases. I think the latest release uses NPM.

@ssbanerje I'll look into this more tomorrow, I just leveled up and enjoying a day off 🎂

@ssbanerje Good news, I found a fix for this, and I'll be submitting a pull request in a little while with the updated code.


runtime: channel send can write to sleeping goroutine's stack

A send on an unbuffered channel to a blocked receiver writes directly to the receiver's stack.  This causes missed writes and incorrect collection of data.

Fixed by 80ec711.


blooket token

not working after update

Working cheats here: https://github.com/Minesraft2/Blooket-Cheats