Request support for ChronoThermostat PLICK Smart NEVE X RFW

Need help with this device yaml.
I've Tried to edit the YAML by myself without success but I think that I have already grabbed all the necessary infos from tinytuya wizard and HA logs.
I only replaced the id and keys with 0000 but all the other details are there.
Let me know if enough.
Thanks
FROM HA LOG
Device matches simple_switch with quality of 10%. DPS: {"updated_at":<PHONE_NUMBER>.990376, "1": true, "2": "auto", "3": "off", "16": 50, "24": 200, "27": 0, "33": 0, "39": true, "42": 1, "102": 136}
FROM TINYTUYA WIZARD
{
"id": "0000000000000",
"ip": "<IP_ADDRESS>",
"active": 2,
"encrypt": true,
"productKey": "0000000000000",
"name": "Home ChronoThermostat PLICK",
"key": "0000000000000",
"mac": "00:00:00:00:00:00",
"ability": 0,
"token": "",
"wf_cfg": "",
"dev_type": "default",
"err": "",
"type": "default",
"dps": {
"dps": {
"1": true,
"2": "temporary",
"3": "off",
"16": 129,
"24": 222,
"27": 0,
"33": 1,
"39": true,
"42": 86,
"102": 33
}
},
"origin": "broadcast",
"ver": "3.3"
}
"name": “Home ChronoThermostat PLICK",
"id": “00000000000000000",
"key": “0000000000000000",
"mac": “00:00:00:00:00:00",
"uuid": “000000000000000000",
"sn": “000000000000000000",
"category": "wk",
"product_name": "NEVE X RFW",
"product_id": “00000000000000000000",
"biz_type": 18,
"model": "NEVE X RFW",
"sub": false,
"icon": "https://images.tuyaeu.com/smart/icon/ay1541463935213XqnXM/ea71fe7c0e1e171c00670f2c43a77ec1.png",
"mapping": {
"1": {
"code": "switch",
"type": "Boolean",
"values": {}
},
"2": {
"code": "mode",
"type": "Enum",
"values": {
"range": [
"auto",
"holiday",
"manual"
]
}
},
"3": {
"code": "work_state",
"type": "Enum",
"values": {
"range": [
"cold"
]
}
},
"16": {
"code": "temp_set",
"type": "Integer",
"values": {
"unit": "\u00b0C",
"min": 50,
"max": 350,
"scale": 1,
"step": 1
}
},
"24": {
"code": "temp_current",
"type": "Integer",
"values": {
"unit": "\u00b0C",
"min": 0,
"max": 400,
"scale": 1,
"step": 1
}
},
"27": {
"code": "temp_correction",
"type": "Integer",
"values": {
"unit": "",
"min": -30,
"max": 30,
"scale": 1,
"step": 5
}
},
"32": {
"code": "holiday_temp_set",
"type": "Integer",
"values": {
"unit": "\u00b0C",
"min": 50,
"max": 350,
"scale": 1,
"step": 1
}
},
"33": {
"code": "holiday_days_set",
"type": "Integer",
"values": {
"unit": "day",
"min": 0,
"max": 99,
"scale": 0,
"step": 1
}
},
"39": {
"code": "factory_reset",
"type": "Boolean",
"values": {}
},
"40": {
"code": "child_lock",
"type": "Boolean",
"values": {}
},
"42": {
"code": "countdown_left",
"type": "Integer",
"values": {
"unit": "min",
"min": 0,
"max": 1440,
"scale": 0,
"step": 1
}
},
"45": {
"code": "fault",
"type": "Bitmap",
"values": {
"label": [
"e1",
"e2",
"e3"
]
}
}
},
"ip": "<IP_ADDRESS>",
"version": "3.3"
}

productid is useful information for this integration, as it is an id that is shared among all devices of this model.
Also, the QueryThingsDataModel result is preferred over other similar dps listings from the cloud API, as that one seems to match more closely the local protocol. Others can have different Enum ranges, and be missing some dps due to differences between the cloud protocol and local protocol that some devices have.

Sorry I’m quite new to HA and all this stuff.
I have retrieved infos from Tuya following your guide and this is the result
Hope now is enough
Please let me know.
Thanks
{"1":"Switch","2":"Mode","3":"Working status","16":"Set temperature","24":"Current temperature","27":"temperature calibration","32":"Holiday temperature","33":"holiday mode days setting","37":"week program","39":"Restore factory settings","40":"Child lock","42":"Remaining time","45":"Fault alarm","101":"temporary time","102":"总开机时间","103":"Antifreeze temperature","104":"fine temperature adjustment”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"32","startTime":1701024524643,"endTime":1701197324644,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"1","startTime":1701024900779,"endTime":1701197700779,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"33","startTime":1701024943429,"endTime":1701197743429,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU"}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"2","startTime":1701032136057,"endTime":1701204936058,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"3","startTime":1701032169157,"endTime":1701204969158,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"37","startTime":1701032186856,"endTime":1701204986856,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"101","startTime":1701032249405,"endTime":1701205049406,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"102","startTime":1701032280104,"endTime":1701205080105,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"39","startTime":1701032295537,"endTime":1701205095538,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"103","startTime":1701032317087,"endTime":1701205117087,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"40","startTime":1701032333820,"endTime":1701205133821,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"104","startTime":1701032368886,"endTime":1701205168886,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"42","startTime":1701032396369,"endTime":1701205196369,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"45","startTime":1701032416236,"endTime":1701205216236,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
"startRowId":"","pageNo":1,"pageSize":10,"code":"16","startTime":1701032571740,"endTime":1701205371740,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"24","startTime":1701032600499,"endTime":1701205400499,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}
{"startRowId":"","pageNo":1,"pageSize":10,"code":"27","startTime":1701032659716,"endTime":1701205459716,"projectCode":"p1692029789822ntfw4s","sourceId":"eu1594143644954oug6D","sourceType":"4","deviceId":"bf32091aa374e81887wjik","pageStartRow":"","region":"EU”}

Product ID was in your original post, but replaced with "00000000" like the sensitive values such as device id and local key.  This was what I was wanting.

        "id": "bf32091aa374e81887wjik",
        "local_key": ")Y'Zj?vB|<Pkwb]Q",
        "model": "NEVE X RFW",
        "product_id": "qgmh0aak7xcmrlf3",
        "product_name": "NEVE X RFW"

Sorry, hope now is fine


Support Compiling to Web Component

It would be great if leptos supported compiling to web components so that is can be interoperated with other frontend frameworks.
A lot of web apps have a need for a few high performance components but are deployed by a team where a majority of devs dont know rust.
I have looked at trunk and leptos docs and afaik there is no mention of web components

I don't have any time to work on this but you should check out my custom-elements crate, which makes it very easy to create custom elements/web components in Rust. If someone wants to make it even easier to convert Leptos components to web components.

Amazing, that's more or less exactly what I'm looking for. Thanks for both these awesome crates!


Issue #4 Revert to default jetty logging

Reverted to default jetty logging.  Tested with async-rest example, which is currently running at https://jetty9-work.appspot.com/ and the logs produced can be seen on the console.

see also https://github.com/GoogleCloudPlatform/java-docs-samples/pull/338

What will happen to Jetty logging if the resources/jetty-logging.properties is not there at all?

It would be discovered.

Slf4jLog - used if slf4j-api is present on server side
StdErrLog - used if slf4j-api is not present
JavaUtilLog - never used

It would also make configuring it strange for people that want to change the behavior.
("where do I enable log4j? where can I set the logging levels? how can i see the stacktraces?" etc)

Would recommend leaving resources/jetty-logging.properties in place.
It's going to be required in the long run anyway.
Once any of the following becomes true:

We use the Google Cloud Logging API
We want to use java.util.logging
We want to support logging.properties on the application deployment

This PR should be considered "a short term hack".

My question was more about the lines that are staying in jetty-logging.properites. Are they changing any defaults?
org.eclipse.jetty.LEVEL=INFO
org.eclipse.jetty.SOURCE=false
org.eclipse.jetty.STACKS=true
org.eclipse.jetty.LONG=false

@meltsufin those are the defaults, so yes we can just delete the file, as it is essentially documentation. Any change to the file needs to replace the file in a subsequent docker image, and I have an example of doing that in the sample app
I'll remove

LGTM

@gregw I noticed that java-util-logging.properties is still there. Was it supposed to be removed as part of this PR?

@meltsufin yes that file is no longer used.  Originally it was used if the jetty-logging.properties configured JUL logging, but as we have removed jetty-logging.properties  we should also remove java-util-logging.properties


Abandoned?

Hello,
Is this project abandoned? I can't see any progress for around two years and the installation fails mostly on new debian/ubuntu installs.

@gdarko  FYI I was able to get it to build on ubuntu by manually building ImageMagick.  Just putting this here incase it helps someone.  https://github.com/rflynn/imgmin/issues/63

thank you @Enalmada i will give it a try.


Error handling for encrypted PDFs

I've found another case that causes OCR to fail (encrypted PDFs). I've added a few lines of code to check for encrypted PDFs and gracefully handle the error with output to the console.  The PR makes it look like more has changed due to rearranging of the lines, but in reality, only the snippet below between the comments has changed.  I've pasted it below to provide simpler review.
From file_ocr
def extract_text_from_pdf(filename, language="eng"):
    file = open(filename, "rb")
#modified code
    encryption_checked_file = PdfFileReader(file)

    if encryption_checked_file.isEncrypted:
        print(f'    --NOTICE: This file is encrypted and cannot be read by Joplin OCR\n')
        return None
#end modified code
    else:
        pdf_reader = get_pdf_file_reader(file)

Hey @plamola - just an FYI that I'm also currently working through an unrelated bug with images that is causing errors and expect to have another PR in the next couple of days.  If you bundle both problems into next rev, you may want to hold off  incorporating this one until the next fix comes through as well.  (just trying to save you some work if you want to handle it that way!)

I was already working on some other improvements and have rearranged some of the code. I incorporated your fix in that change set.
It has been released as part of version 0.3.12


Add 2D Vector rotation by radians operation

Added a file rotateRad.go:

Provides rotation by radians for 2D vectors only
Partially addresses #24

Looks great! Thank you!


[language] rename move-lang to move-compiler

This renames the move-lang crate to move-compiler, which we previously agreed upon.


Consistent resolution of identities and ids to labels

Ability to resolve IP and endpoint ID to labels
Currently cilium monitor only if identity is known
Use ipcache to resolve endpoint ID and endpoint IPs to labels

monitor command needs to reimplement what is done in Microscope (label and name-based endpoint selection based on endpoint data) and add IP address support (#3888). monitor command can get this information from cilium daemon serving API in the same container

Work items:

[ ] retrieve endpoint information from Cilium API in cilium monitor command
[ ] filter by pod name
[ ] filter by labels
[ ] filter by ip addresses

Isn't there enough information in the CEPs to derive this in microscope? Endpoint IDs are specific to the node but IPs are unique to the pod. I would argue that filtering in microscope by endpoint id shouldn't be supported. pod-name or IP are effective unique IDs. The mapping to the the monitor command still needs to extract the id, though, but that is also in the CEP. If we do https://github.com/cilium/cilium/issues/3891 then it will be easier to pull in the appropriate CEP objects (although it would be straightforward even now).
I'm mostly worried about adding more to the monitor. It's currently a very simple daemon, restricted to a local space. Once we add the need to talk to the ipcache it either needs a new API on the agent, or it needs to talk to the kvstore directly. Apart from inconsistency with the agent that runs it, we would also have to ensure the API is stable for all combinations for cilium-agent and monitor (today they are one thing but that might change).

Isn't there enough information in the CEPs to derive this in microscope? Endpoint IDs are specific to the node but IPs are unique to the pod. I would argue that filtering in microscope by endpoint id shouldn't be supported

We have to be a bit careful to leave an option for non Kubernetes setups a well.

Once we add the need to talk to the ipcache it either needs a new API on the agent, or it needs to talk to the kvstore directly. Apart from inconsistency with the agent that runs it, we would also have to ensure the API is stable for all combinations for cilium-agent and monitor (today they are one thing but that might change).

We can also consider adding this to the node-monitor which is already aware of the kvstore configuration and can complete notification as needed.

We have to be a bit careful to leave an option for non Kubernetes setups a well.
Oh, I thought microscope is k8s only. I'm guessing you mean generally having a scheme to resolve endpointID -> labels, correct?

We can also consider adding this to the node-monitor which is already aware of the kvstore configuration and can complete notification as needed.
Oh, I didn't realise. When I grepped for the import of the kvstore package I didn't see any from the monitor packages. Can you point me to it?

When https://github.com/cilium/microscope/pull/71 is merged it is going to be done on microscope side.

@nebril can this be closed given that https://github.com/cilium/microscope/pull/71 has been merged?

nebril might be offline today, but I'm pretty sure we've done the things listed in this ticket. I'll optimistically close it.


Add functionality to convert cURL to Angular HTTP

Hi,
This is something I come across everyday, actually most angular developers. Thought of creating my own thing for this, but saw this one already supports multiple others. Shall we add the support for angular? If need, I can take out the issue and work on this.

If you don't do it, I doubt anyone else will.


gui: Fix minor issues.

Format unix time properly
Include account ID when showing address details
Link to admin page in footer
Add spaces to table headers
Links to dcrdata.
Re-org columns of payments table.

Rebased and ready for another look.


[SE-108] Save .csv car data in database

Context

Please include a summary of the change and which ticket it addresses. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes SE-108.
Description

Reorganized database code a little
Included a constants file
Created the new car database table
Saved .csv car dataset into the car table

Type of change
Please select options that are relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Can This Be Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration and any other tests you think may be worth running (help out the tester pretty please would be appreciated)

[x] Test A
[x] Test B

Notes:

Checklist:

[x] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have given testing instructions for the reviewer
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] Jira ticket number in PR title
[ ] Contributer name in PR title

Complete the "checklist" portion of the PR for next time


Update jsx-in-depth.md

I believe there's a typing mistake in this section, It specifies that if a tag name is used in JSX as <Foo />, then React (NOT Foo) must be in scope to help understand the custom component.
A confirmation to what I am pointing at in the first point, check the title of the section following the section with the proposed changes in this PR, it states React Must Be in Scope {#react-must-be-in-scope}

replaced with w new PR

replaced with w new PR


Promise constructor's return type doesn't unwrap nested promises

Bug Report
🔎 Search Terms
promise constructor
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about Promises

⏯ Playground Link

Playground link with relevant code
💻 Code

const nestedPromise = (function() {
    return new Promise<Promise<number>>(resolve1 => {

        resolve1(new Promise<number>(resolve2 => {
            resolve2(5);
        }));

    })
})();

// according to TS, `result` should be a Promise<number>, but at runtime, it's actually just a number
nestedPromise.then(result => console.log('first', result, typeof result));
//                 ^?

// when using Promise.resolve(), the type is correct
const nestedPromiseResolve = (function() { return Promise.resolve(Promise.resolve(Promise.resolve(5)))})();
nestedPromiseResolve.then(result => console.log('second', result, typeof result));
//                        ^?

🙁 Actual behavior
Return type of the promise constructor doesn't unwrap nested promises
🙂 Expected behavior
The return type of the promise constructor should match the runtime behavior
The current constructor type is { new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>; }
Shouldn't the return type actually be Promise<Awaited<T>> like it is for Promise.resolve()? Is there something I'm missing here?

This definitely seems wrong. Is there any work planned to fix this?
The following behaviors that appear to be bugs are as follows.
// it's correct
const resolve: Promise<number> = Promise.resolve(Promise.resolve(Promise.resolve(0)))

async function pr<T>(v: T) {
  return v
}
// it's should be Promise<number>
const promise: Promise<Promise<Promise<number>>> = pr(pr(pr(0)))

const a: any = 0
;(a as Promise<Promise<Promise<number>>>).then(
  // value is should be number
  (value: Promise<Promise<number>>) => {}
)

Playground


[Offline sync] Consolidate and simplify notifications

We should have notifications for these background operations:

[ ] New LOIs added to a job by organizer
[ ] New jobs added to a survey by organizer
[ ] Submitted data uploaded (notify about photos separately?)

Offline basemap tiles download can happen in the background but the status should be reported in the UI rather than notification.
The notifications are currently transient, but with #1125 they should be persistent.

We've removed all notifications for now, closing as obsolete.


match crashing to can't modify frozen String: "true"

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
Trying to run match after updating a new device (register_devices) is crashing
The existing provisioning profile is deleted from the portal and match is not able to create a new one.
Individual commands sigh and cert are working fine.
match(type: "development",force_for_new_devices: true)
Command executed
match(type: "development", force_for_new_devices: true)
Complete output when running fastlane, including the stack trace and command used

Till here everything is executed in green .
[13:50:05]: Installing provisioning profile...
[13:50:07]: Provisioning profile 'a6a8a9ac-bb48-4161-87c7-8ac02f8f0107' is not available on the Developer Portal for the user<EMAIL_ADDRESS>fixing this now for you 🔨
+-------------------------------------+---------------------------------------------+
|                             Summary for sigh 2.145.0                              |
+-------------------------------------+---------------------------------------------+
| app_identifier                      | com.--.--                   |
| username                            |<EMAIL_ADDRESS>                    |
| force                               | false                                       |
| cert_id                             | --                                  |
| provisioning_name                   | match Development com.--.-- |
| ignore_profiles_with_different_name | true                                        |
| team_id                             | ------                                  |
| platform                            | ios                                         |
| development                         | true                                        |
| adhoc                               | false                                       |
| developer_id                        | false                                       |
| skip_install                        | false                                       |
| skip_fetch_profiles                 | false                                       |
| skip_certificate_verification       | false                                       |
| readonly                            | false                                       |
+-------------------------------------+---------------------------------------------+
[13:50:07]: Starting login with user<EMAIL_ADDRESS>[13:50:09]: Successfully logged in
[13:50:09]: Fetching profiles...
[13:50:10]: Verifying certificates...
[13:50:10]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[13:50:14]: Creating new provisioning profile for 'com.designcapital.lemoney' with name 'match Development com.--.--' for 'ios' platform
+------------------+-------------------------+
|                Lane Context                |
+------------------+-------------------------+
| DEFAULT_PLATFORM | ios                     |
| PLATFORM_NAME    | ios                     |
| LANE_NAME        | ios sync_signing_assets |
+------------------+-------------------------+
[13:50:14]: can't modify frozen String: "true"
+------+------------------+-------------+
|           fastlane summary            |
+------+------------------+-------------+
| Step | Action           | Time (in s) |
+------+------------------+-------------+
| 1    | default_platform | 0           |
| 💥   | match            | 17          |
+------+------------------+-------------+
[13:50:14]: fastlane finished with errors
Looking for related GitHub issues on fastlane/fastlane...
➡  can't modify frozen String: "true" for enterprise builds
https://github.com/fastlane/fastlane/issues/16055 [open] 39 💬
a week ago
➡  fastlane deliver download_metadata failed with Ruby 2.7.0p0 on macOS
https://github.com/fastlane/fastlane/issues/16113 [open] 6 💬
5 days ago
➡  match always creates new certificates for appstore, fails on readonly [XCode 11]
https://github.com/fastlane/fastlane/issues/16210 [open] 3 💬
4 days ago
and 3 more at: https://github.com/fastlane/fastlane/search?q=can't modify frozen String%3A "true"&type=Issues&utf8=✓
🔗  You can ⌘ + double-click on links to open them directly in your browser.
Traceback (most recent call last):
43: from /usr/local/lib/ruby/gems/2.7.0/bin/fastlane:23:in <main>' 	42: from /usr/local/lib/ruby/gems/2.7.0/bin/fastlane:23:in load'
41: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/bin/fastlane:23:in <top (required)>' 	40: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in take_off'
39: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/commands_generator.rb:41:in start' 	38: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/commands_generator.rb:349:in run'
37: from /usr/local/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in run!' 	36: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in run!'
35: from /usr/local/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in run_active_command' 	34: from /usr/local/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in run'
33: from /usr/local/lib/ruby/gems/2.7.0/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in call' 	32: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/commands_generator.rb:108:in block (2 levels) in run'
31: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/command_line_handler.rb:36:in handle' 	30: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/lane_manager.rb:56:in cruise_lane'
29: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:45:in execute' 	28: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:45:in chdir'
27: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:49:in block in execute' 	26: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/lane.rb:33:in call'
25: from Fastfile:71:in block (2 levels) in parsing_binding' 	24: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/fast_file.rb:159:in method_missing'
23: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:157:in trigger_action_by_name' 	22: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:227:in execute_action'
21: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:227:in chdir' 	20: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:253:in block in execute_action'
19: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in execute_action' 	18: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/runner.rb:261:in block (2 levels) in execute_action'
17: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/fastlane/lib/fastlane/actions/sync_code_signing.rb:13:in run' 	16: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:105:in run'
15: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:105:in each' 	14: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:106:in block in run'
13: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:106:in loop' 	12: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:107:in block (2 levels) in run'
11: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/runner.rb:254:in fetch_provisioning_profile' 	10: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/match/lib/match/generator.rb:92:in generate_provisioning_profile'
9: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/sigh/lib/sigh/manager.rb:8:in start' 	 8: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/sigh/lib/sigh/runner.rb:40:in run'
7: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/sigh/lib/sigh/runner.rb:135:in create_profile!' 	 6: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/portal/provisioning_profile.rb:262:in create!'
5: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/portal/provisioning_profile.rb:262:in inspect' 	 4: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/base.rb:286:in inspect'
3: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/base.rb:296:in inspect_value' 	 2: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/base.rb:296:in map'
1: from /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/base.rb:298:in block in inspect_value' /usr/local/lib/ruby/gems/2.7.0/gems/fastlane-2.145.0/spaceship/lib/spaceship/base.rb:298:in gsub!': \e[31m[!] can't modify frozen String: "true"\e[0m (FrozenError)
ENV
✅ fastlane environment ✅
Stack

Key
Value

OS
10.15.1

Ruby
2.7.0

Bundler?
false

Git
git version 2.21.0 (Apple Git-122.2)

Installation Source
/usr/local/lib/ruby/gems/2.7.0/bin/fastlane

Host
Mac OS X 10.15.1 (19B88)

Ruby Lib Dir
/usr/local/Cellar/ruby/2.7.0/lib

OpenSSL Version
OpenSSL 1.1.1d  10 Sep 2019

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
11.3

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE
en_US.UTF-8
✅

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

ENV["DELIVER_USER"] =<EMAIL_ADDRESS>
default_platform(:ios)

platform :ios do
  desc "Description of what the lane does"
  lane :test do
    # add actions here: https://docs.fastlane.tools/actions
  end

  desc "Distribute to Crashlytics"
  lane :distribute_to_crashlytics do
    build_development
    firebase_app_distribution(
        app: "1:xxxxx:ios:xxxxxx",
        testers<EMAIL_ADDRESS>        release_notes: "Lots of amazing new features to test out!",
        firebase_cli_path: "/usr/local/bin/Firebase"
    )
  end

  # FIREBASE TESTING

  # desc "My awesome app"
  #     lane :distribute do
  #         build_ios_app(...) # build_ios_app is a built-in fastlane action.
  #
  #         firebase_app_distribution(
  #             app: "1:xxxx:ios:xxxxx",
  #             testers<EMAIL_ADDRESS><EMAIL_ADDRESS>  #             release_notes: "Lots of amazing new features to test out!",
  #             firebase_cli_path: "/absolute/path/to/firebase/cli/binary"
  #         )
  #
  #     end

  #---

  desc "Build for Development Purpose"
  lane :build_development do
    # sync_signing_assets(type: "development")
    # increment_build_number
    gym(
      output_directory: "build_development",
      export_method: "development",
      silent: true
    )
  end

  desc "sync team Code Signing assets"
  lane :sync_signing_assets do |options|
    # sync_device_info
    # selecetedType = options[:type]
    match(type: "development",force_for_new_devices: true)
  end

  desc "Update iOS UDID on the Apple Developer Portal"
  lane :sync_device_info do
    register_devices(
      devices_file: "fastlane/DeviceFile.txt"
        # devices: {
        #   "vinay_iPhone11PRO" => "xxx-xxx"
        # }
    )
  end

  lane :get_dev_certs do
    cert(development: true)
    sigh(development: true)
  end

  lane :get_dev_certs_withParams do
    cert(
      username<EMAIL_ADDRESS>      team_name: "Lemoney Online Services Private Limited",
      development: true
    )
    sigh(
      username<EMAIL_ADDRESS>      team_name: "Some Compnay Services Private Limited",
      app_identifier: "com.--.--",
      development: true
    )
  end
  lane :sandbox do
    cert(
      username<EMAIL_ADDRESS>      team_name: "Some Compnay Services Private Limited",
      development: true
    )
  end

end

`./fastlane/Appfile`
# app_identifier("[[APP_IDENTIFIER]]") # The bundle identifier of your app
# apple_id("[[APPLE_ID]]") # Your Apple email address

# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile

app_identifier "com.--.--"
apple_id<EMAIL_ADDRESS>team_id "----"

fastlane gems

Gem
Version
Update-Status

fastlane
2.145.0
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-firebase_app_distribution
0.1.4
✅ Up-To-Date

Loaded gems

Gem
Version

did_you_mean
1.4.0

slack-notifier
2.3.2

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

unicode-display_width
1.7.0

terminal-table
1.8.0

plist
3.5.0

CFPropertyList
3.0.2

public_suffix
2.0.5

addressable
2.7.0

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.7.1

tty-cursor
0.7.1

tty-spinner
0.9.3

babosa
1.0.3

colored
1.2

highline
1.7.10

commander-fastlane
4.4.6

excon
0.73.0

faraday
0.17.3

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

faraday_middleware
0.13.1

fastimage
2.1.7

gh_inspector
1.1.3

json
2.3.0

mini_magick
4.10.1

multi_xml
0.6.0

rubyzip
1.3.0

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.7.5

naturally
2.2.0

simctl
1.6.8

jwt
2.1.0

uber
0.1.0

declarative
0.0.10

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.2

mini_mime
1.0.2

httpclient
2.8.3

google-api-client
0.36.4

emoji_regex
1.0.1

uri
0.10.0

nanaimo
0.2.6

colored2
3.1.2

claide
1.0.3

atomos
0.1.3

xcodeproj
1.16.0

bundler
2.1.4

multi_json
1.14.1

signet
0.14.0

os
1.1.0

memoist
0.16.2

googleauth
0.12.0

digest-crc
0.5.1

google-cloud-errors
1.0.0

google-cloud-env
1.3.1

google-cloud-core
1.5.0

google-cloud-storage
1.26.0

aws-eventstream
1.1.0

aws-sigv4
1.1.1

aws-partitions
1.296.0

jmespath
1.4.0

aws-sdk-core
3.94.0

aws-sdk-kms
1.30.0

aws-sdk-s3
1.61.2

forwardable
1.3.1

logger
1.4.2

cgi
0.1.0

timeout
0.1.0

stringio
0.1.0

ipaddr
1.2.2

openssl
2.1.2

ostruct
0.2.0

strscan
1.0.3

date
3.0.0

delegate
0.1.0

fileutils
1.4.1

io-console
0.5.3

zlib
1.1.0

singleton
0.1.0

rexml
3.2.3

open3
0.1.0

yaml
0.1.0

psych
3.1.0

mutex_m
0.1.0

webrick
1.6.0

fastlane-plugin-firebase_app_distribution
0.1.4

generated on: 2020-04-15

This is a duplicate of #16055


Prototype Pollution in set-value

Description
Versions of set-value prior to 3.0.1 or 2.0.1 are vulnerable to Prototype Pollution. The set function fails to validate which Object properties it updates. This allows attackers to modify the prototype of Object, causing the addition or modification of an existing property on all objects.
Recommendation
If you are using set-value 3.x, upgrade to version 3.0.1 or later.
If you are using set-value 2.x, upgrade to version 2.0.1 or later.
Severity Check

[ ] Low
[ ] Moderate
[ ] High
[X] Critical

Severity Number
9.8 / 10
CVSS base metrics

Attack vector
Network

Attack complexity
Low

Privileges required
None

User interaction
None

Scope
Unchanged

Confidentiality
High

Integrity
High

Availability
High

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses
WeaknessCWE-1321

CVE ID
CVE-2019-10747

GHSA ID
GHSA-4g88-fppr-53pp

Information
Package
set-value (npm)
Affected versions
< 2.0.1
Patched version
2.0.1
References
https://nvd.nist.gov/vuln/detail/CVE-2019-10747
https://snyk.io/vuln/SNYK-JS-SETVALUE-450213
https://www.npmjs.com/advisories/1012
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>jonschlinkert/set-value@95e9d99
jonschlinkert/set-value@cb12f14

/lock


Add and use TryReadChars method

In https://github.com/dotnet/SqlClient/issues/593#issuecomment-1041190401 @panoskj pointed out that there was a path in the example reproduction which was copying characters from a buffer one at a time in a loop and that this was inefficient. I've done a little digging and this is an attempt to speed it up. Note that not all strings are copied this way.
Unfortunately the fix isn't as simple as copying into from the byte[]. We need to make sure that if we reach a packet boundary that we call a function capable of fetching the next packet. We also need to be aware that we could end up with a partial character in the input buffer and that needs special handling. The strategy I've settled on for this PR is to identify how much can be copied in bulk from the current packet and then pick up any remainder or simply force a new packet by calling TryReadChar() as the code currently does. This should result in most data being read in large blocks with single chars being picked up at existing boundaries which should be faster if not the fastest possible.
/cc @panoskj could you take a look and see if you agree with this and possibly run it through your benches/profiler to see if it improves the numbers you saw?

I have not run any benchmarks with it yet, but it seems like a reasonable change. It should speed up both sync and async paths.
It also looks like you could replace usages of TryReadPlpUnicodeChars with TryReadStringWithEncoding (passing Encoding.Unicode as encoding parameter and doubled string size), if the result will be converted to a string anyway. This is the case inside TryReadSqlStringValue for example. This way you can avoid the case of "partially read characters" altogether. It looks like TryReadPlpUnicodeChars is only needed for SqlDataReader.GetChars actually.
Though, this change cannot improve the async path much, because as I mentioned in #593 (comment), its time complexity is quadratic. No matter how fast you make the copying itself, all packets in the replay buffer will be copied into the characters buffer for each packet received again and again.
The optimal solution would copy each packet once instead. See https://github.com/panoskj/SqlClient/tree/wip/issue/593 for a proof of concept. Async runs about as fast as the sync does, even for very large columns, e.g. 50MB. Note that I haven't reviewed the last commit much, it wasn't meant to be uploaded yet.
In conclusion, perhaps we should merge the netcore and netfx files before applying a dozen of new patches to them. But except for the pending merge, I agree with this change.

It also looks like you could replace usages of TryReadPlpUnicodeChars with TryReadStringWithEncoding (passing Encoding.Unicode as encoding parameter and doubled string size), if the result will be converted to a string anyway. This is the case inside TryReadSqlStringValue for example. This way you can avoid the case of "partially read characters" altogether. It looks like TryReadPlpUnicodeChars is only needed for SqlDataReader.GetChars actually.

Possibly. Identifying whether the behaviour is the same can be time consuming.

Though, this change cannot improve the async path much, because as I mentioned in https://github.com/dotnet/SqlClient/issues/593#issuecomment-1041190401, its time complexity is quadratic. No matter how fast you make the copying itself, all packets in the replay buffer will be copied into the characters buffer for each packet received again and again.

We both have branches which can linearize that, just waiting on the tree merges.

In conclusion, perhaps we should merge the netcore and netfx files before applying a dozen of new patches to them. But except for the pending merge, I agree with this change.

I've love to. Tree merging is going slowly though. If I can get a small PR through to improve performance I'll try it.

It looks like this doesn't work with some of the bulkcopy tests.

I updated without making any material change and the CI is mostly clean. The only failures are in AE and while they do look look related I have no way to replicate that environment to debug them.

PR #1520 is the prerequisite of this change.

Prerequisites are met...

I see you haven't modified any existing code inside TdsParserStateObject - you only added a new method. This means, you can now update this PR to add the new method inside the merged file (src\Microsoft\Data\SqlClient\TdsParserStateObject.cs) instead of inside the corefx version. Of course, to do this, you will have to merge main branch into this one (to get #1520's changes).
Moreover, according to this comment, there may be someone working on merging TdsParser already, but there is no PR yet (they are waiting for #1844, which will help them a lot). You could port the changes to TryReadPlpUnicodeCharsChunk to netfx in order to help them. Alternatively, you could merge TryReadPlpUnicodeCharsChunk into a new common file (just merge this one method and leave the rest). That being said, I haven't checked whether TryReadPlpUnicodeCharsChunk is the same in corefx and netfx - if there are significant changes, porting/merging may be too hard. But I suspect they are identical.

rebased, moved to shared and cleaned up slightly

CI failures are infrastructure issues or unreliable reliability test failures. nothing appears linked to the changes made here.

this one looks related:

passes locally:

The failure is only on Linux with AE and it is definitely right in your new code. The call stack goes through TryReadPlpUnicodeChars -> TryReadPlpUnicodeCharsChunk (strangely not shown in the stack - release optimized out?) [your code changes] -> TryReadChars [your code changes] -> TryReadChar -> TryReadByteArray -> TryReadByteArray.
Failed Microsoft.Data.SqlClient.ManualTesting.Tests.AlwaysEncrypted.SqlBulkCopyTruncation.BulkCopyNVarchar(connectionString: "Data Source=tcp:<IP_ADDRESS>;Database=NORTHWIND;UID=sa"...) [35 s]
EXEC : error Message:  [/mnt/vss/_work/1/s/build.proj]
     Assert.Throws() Failure
  Expected: typeof(System.InvalidOperationException)
  Actual:   typeof(System.ArgumentOutOfRangeException): Specified argument was out of the range of valid values.
  ---- System.ArgumentOutOfRangeException : Specified argument was out of the range of valid values.
    Stack Trace:
       at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Span`1 buff, Int32 len, Int32& totalRead) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 400
     at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Span`1 buff, Int32 len) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 354
     at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadChar(Char& value) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 470
     at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadChars(Char[] chars, Int32 charsOffset, Int32 charsCount, Int32& charsCopied) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 468
     at Microsoft.Data.SqlClient.TdsParser.TryReadPlpUnicodeChars(Char[]& buff, Int32 offst, Int32 len, TdsParserStateObject stateObj, Int32& totalCharsRead, Boolean supportRentedBuff, Boolean& rentedBuff) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs:line 12621
     at Microsoft.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs:line 5706
     at Microsoft.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj, SqlCommandColumnEncryptionSetting columnEncryptionOverride, String columnName, SqlCommand command) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/TdsParser.cs:line 6083
     at Microsoft.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly, Boolean forStreaming) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlDataReader.cs:line 3915
     at Microsoft.Data.SqlClient.SqlDataReader.GetValueInternal(Int32 i) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlDataReader.cs:line 2713
     at Microsoft.Data.SqlClient.SqlDataReader.GetValue(Int32 i) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlDataReader.cs:line 2665
     at Microsoft.Data.SqlClient.SqlBulkCopy.GetValueFromSourceRow(Int32 destRowIndex, Boolean& isSqlType, Boolean& isDataFeed, Boolean& isNull) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 956
     at Microsoft.Data.SqlClient.SqlBulkCopy.ReadWriteColumnValueAsync(Int32 col) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2158
     at Microsoft.Data.SqlClient.SqlBulkCopy.CopyColumnsAsync(Int32 col, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2232
     at Microsoft.Data.SqlClient.SqlBulkCopy.CopyRowsAsync(Int32 rowsSoFar, Int32 totalRows, CancellationToken cts, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2400
     at Microsoft.Data.SqlClient.SqlBulkCopy.CopyBatchesAsyncContinued(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2570
     at Microsoft.Data.SqlClient.SqlBulkCopy.CopyBatchesAsync(BulkCopySimpleResultSet internalResults, String updateBulkCommandText, CancellationToken cts, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2500
     at Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestContinuedAsync(BulkCopySimpleResultSet internalResults, CancellationToken cts, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2769
     at Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServerInternalRestAsync(CancellationToken cts, TaskCompletionSource`1 source) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 2997
     at Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServerInternalAsync(CancellationToken ctoken) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 3056
     at Microsoft.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServerAsync(Int32 columnCount, CancellationToken ctoken) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 1974
     at Microsoft.Data.SqlClient.SqlBulkCopy.WriteToServer(DbDataReader reader) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs:line 1648
     at Microsoft.Data.SqlClient.ManualTesting.Tests.AlwaysEncrypted.SqlBulkCopyTruncation.DoBulkCopy(String sourceTable, String targetTable, String connectionString) in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/SqlBulkCopyTruncation.cs:line 582
     at Microsoft.Data.SqlClient.ManualTesting.Tests.AlwaysEncrypted.SqlBulkCopyTruncation.<>c__DisplayClass12_0.<BulkCopyNVarchar>b__0() in /mnt/vss/_work/1/s/src/Microsoft.Data.SqlClient/tests/ManualTests/AlwaysEncrypted/SqlBulkCopyTruncation.cs:line 345

Sure, but I can't repro so I'm looking at complex guesswork.
The only changed method is TryReadChars. What I changed it to do was work out how many chars it could copy completely and do them in a block. If it then has a partial char it falls back to the usual method of calling the existing TryReadChar because that can initiate a packet read.
In the callstack above we can see that it's copied all it can as a block (if any) and is now calling into TryReadChar to handle the partial character, so it's likely we've got 1 byte of a char. That makes sense because TryReadChar then ends up calling into TryReadByteArray and it will only do that if there aren't enough bytes left in _inBuff.
So the error isn't in new code. It's in existing code. It's just passed through new code. Why didn't it fail before? no idea. I have a suspicion but no evidence. I'll add some debugging exception information and see if it fails with interesting values.

Count someone from the MS side check the CI machines? the enclave steps are either timing out or just plain not working.

Fixed, quick, merge while it's green!

Lets get this in sooner than later so it gets some miles on it during preview.

Good idea. @panoskj do you have any benches you want to try with it since you found the original issue?


[PaLM API - Chatbot Ext.] Context Field not working

Extension name: Chatbot with PaLM API
Extension version: 0.1.7
Configuration values: Palm API Provider: vertex
API Key (Generative Language AI for Developers Provider ONLY) (Optional): Parameter not set
Collection Path: discussions
Prompt Field: prompt
Response Field: response
Order Field (Optional): Parameter not set
Cloud Functions location: us-east1
Language model: chat-bison
Context (Optional): Speak like Shakespeare.
Temperature (Optional): 0.8
Nucleus sampling probability (Optional): Parameter not set
Sampling strategy parameter (Optional): Parameter not set
Candidate count (Optional): 1
Candidates field (Optional): candidates
Enable per document overrides: no

Describe the problem
I'm using the chatbot api in an app and it works as expected. However, when I set the context field for the chatbot to act a certain way, it doesn't follow it. I tried with multiple context prompts and none of them work because I get the same response before and after setting the context field.
Steps to reproduce:
What happened? How can we make the problem occur?

Download and set the parameters of the extension as stated above but keep the context field and the temperature blank.
Create a collection in Firestore called "discussions"
Input in a prompt field with a question.
Wait for the extension to post a response.
Go back to the extension's configuration page and add "Speak like Shakespeare", in the context field. Keep the temperature field blank.
Retry the same prompt as above and compare the two results.

Expected result
The two responses are different and the answer is stated in the voice of Shakespeare.
Actual result
The two responses are identical and the answer with previous context doesn't apply to the response from the Chatbot.

It looks like this happens because the overrides logic for the extension is missing the truthy check that other overrides have, so context is always set to undefined if it isn't included in each document in the chat:
https://github.com/GoogleCloudPlatform/firebase-extensions/blob/264198e27ad841f421598fc8b1eb005edce825e7/firestore-palm-chatbot/functions/src/index.ts#L175-L177
Compare this to the other overrides which have the if(<overridename>) check:
https://github.com/GoogleCloudPlatform/firebase-extensions/blob/264198e27ad841f421598fc8b1eb005edce825e7/firestore-palm-chatbot/functions/src/index.ts#L181-L183

Thanks for raising this! Will look into this ASAP

I'll aim to get a fix merged in and released tomorrow morning :)

I have a PR in to fix this, just waiting on review and then I will cut a release


Polymer 1x prep

Making elements more ready for the automatic conversion to Polymer 1.x in #668. I'd like to get these merged so that the delta doesn't get too far.
This should include all element changes that are safe to do while we're still in 0.5 land.

Why do we need those safety short-circuits now and not before?

@jonnor Polymer 1.0 fires changed when instantiating elements and setting them to their initial values (like null)


java: added some of the missing samples

Signed-off-by: Stefan Andritoiu<EMAIL_ADDRESS>The samples added are:
BMA220Sample.java
DFRPHSample.java
GroveUltraSonicSample.java
I2CLCD_EBOLEDSample.java
I2CLCD_SSD1306Sample.java
LM35Sample.java
LSM9DS0Sample.java
LoudnessSample.java
MCP9808Sample.java
MG811Sample.java
MQ4Sample.java
MQ6Sample.java
MQ7Sample.java
MQ8Sample.java
NLGPIO16Sample.java
PN532Sample.java
PN532_writeurlSample.java
RHUSBSample.java
WheelEncoderSample.java

I haven't added the samples into the "auto build samples"-part of CMake or Travis, as to not interfere with the new upm interfaces.
When the upm_interfaces branch will be merged (or probably before that, directly in the upm_interfaces branch) I will update the samples with respect to the new API (as the C++ samples are also updated)

Merged. Thanks Stefan!


Usability: New annotation window text field requires manual focus selection

Writing the text for a new annotation requires the text field to be clicked on. Expected behaviour: text field already has focus and typing can immediately commence.

Thanks for mentioning this, this has now been resolved!


Example SaveChanges() is non-transacstional

The current implementation of the overridden DbContext.SaveChanges you have in your wiki can lead to a situation where a entity is saved, but it's audit is not. In the code below, if the a AutoPreSaveAction has been configured and it throws an exception, the entity is still persisted, but the audit entry is not.
Existing
   `
   public override int SaveChanges()
   {
   var audit = new Audit();
    audit.PreSaveChanges(this);
    var rowAffecteds = base.SaveChanges();
    audit.PostSaveChanges();`

    if (audit.Configuration.AutoSavePreAction != null)
    {
        audit.Configuration.AutoSavePreAction(this, audit);
        base.SaveChanges();
    }

    return rowAffecteds;
}`

Suggested
   `
   public override int SaveChanges()
    {
        var audit = new Z.EntityFramework.Plus.Audit();
        audit.PreSaveChanges(this);

        if (audit.Configuration.AutoSavePreAction != null)
        {
            audit.Configuration.AutoSavePreAction(this, audit);
        }

		var rowAffecteds = base.SaveChanges();
		audit.PostSaveChanges();

		return rowAffecteds;
    }`

Thank you for this suggestion but this solution will not work either.
The PostSaveChanges event set all the "NewValue" for all properties including identity value. So it must be called after the SaveChanges and another SaveChanges must be called to save theses values.
But even if we add, a second SaveChanges in your example, it may lead to some other very weird behavior. There is a lot of configuration like Include / Excluding property, Property Factory, etc. which may fail due to some user error in the configuration in the PostSaveChanges event.
So if audit entities are added before the first SaveChanges, some value will be already saved in the database (without the identity values), so if a configuration fails in the PostSaveChanges method, then you will find yourself with only a partial AuditEntryProperties value.
By example:

For EntityAdded: The AuditEntry will not have any AuditEntryProperties
For EntityModified: The AuditEntryProperties will have old value but NO new value
For EntityDelete: Everything will work for this one!

Best Regards,
Jonathan

Hi Jonathan,
So what is the solution to atomic entity and audit persistence? Perhaps just wrap the entire thing in an explicit transaction?
       public override int SaveChanges()
        {
    		using (var tran = Database.BeginTransaction())
    		{
	                var audit = new Z.EntityFramework.Plus.Audit();
			audit.PreSaveChanges(this);
			var rowAffecteds = base.SaveChanges();
			audit.PostSaveChanges();

			if (audit.Configuration.AutoSavePreAction != null)
			{
			       audit.Configuration.AutoSavePreAction(this, audit);
				base.SaveChanges();
			}

    			tran.Commit();

			return rowAffecteds;
		}
        }

Hello @samshiles ,
Yes, I believe the transaction it's the only way to ensure this.
Best Regards,
Jonathan


Validate that general (G) constraints are working

Find a good constraint to test with on the sample problem. Perhaps the legged system will be a good demo. I have a suspicion that they aren't quite right yet.

This was validated ages ago but I forgot to close it.


V4L2 options + Pi Zero W settings?

Hi Michel,
Are you able to explain what these three options do? Is one better than the other for e.g. performance or smoother playback?

V4L2 options :
-r       : V4L2 capture using read interface (default use memory mapped buffers)
-w       : V4L2 capture using write interface (default use memory mapped buffers)
-s       : V4L2 capture using live555 mainloop (default use a separated reading thread)

Also, I'm using a Pi Zero W and was wondering if you have any recommended settings for streaming over WIFI? I can control FPS, but not the Video bitrate. Any clue how I can control the bitrate?
Thanks.

Hi retrostrobe,
The effect of these options are probably insignifiant.
Nevertheless -r is for using read api instead of ioctl VIDIOC_DQBUF
The options -w is used only when copying capture to an output buffer (using -O /dev/videoxx) and then use write api instead of mmap ioctl.
The options -s use add capture filedescriptor to live555 reactor then there is only one thread that read the capture device and write to the network. Without there is a queue between the capture thread and the sending thread.
For streaming over WIFI, it is probably better to disable power management, maybe tcp streaming could helps ???
Best Regards,
Michel.

Thank you for clarifying the options.
Also, how would you go about limiting the video bitrate so we're not sending too much data over WIFI?


bump version in package.json to v2.26.6

release version v2.26.6

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


Change topic title

Change title of topic from Running as a Java Program to Running on a JVM.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Samuel Mervyn Gnaniah seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Can't use proxy host with self-signed certificates

Describe the bug
I am trying to use this with my proxy instance of OpenAI, but when I try to connect to it, i get an error:
Console logs
Traceback (most recent call last):

  File "aiohttp/connector.py", line 980, in _wrap_create_connection
  File "asyncio/base_events.py", line 1103, in create_connection
  File "asyncio/base_events.py", line 1133, in _create_connection_transport
  File "asyncio/futures.py", line 285, in __await__
  File "asyncio/tasks.py", line 304, in __wakeup
  File "asyncio/futures.py", line 201, in result
  File "asyncio/sslproto.py", line 534, in data_received
  File "asyncio/sslproto.py", line 188, in feed_ssldata
  File "ssl.py", line 975, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1007)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "openai/api_requestor.py", line 588, in arequest_raw
  File "aiohttp/client.py", line 536, in _request
  File "aiohttp/connector.py", line 540, in connect
  File "aiohttp/connector.py", line 901, in _create_connection
  File "aiohttp/connector.py", line 1209, in _create_direct_connection
  File "aiohttp/connector.py", line 1178, in _create_direct_connection
  File "aiohttp/connector.py", line 982, in _wrap_create_connection

aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host ai-gateway.myplace.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1007)')]

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "continuedev/src/continuedev/core/autopilot.py", line 248, in _run_singular_step
    observation = await step(self.continue_sdk)
  File "continuedev/src/continuedev/core/main.py", line 319, in __call__
    return await self.run(sdk)
  File "continuedev/src/continuedev/plugins/steps/chat.py", line 35, in run
    async for chunk in generator:
  File "continuedev/src/continuedev/libs/llm/openai.py", line 116, in stream_chat
    async for chunk in await openai.ChatCompletion.acreate(
  File "openai/api_resources/chat_completion.py", line 45, in acreate
  File "openai/api_resources/abstract/engine_api_resource.py", line 217, in acreate
  File "openai/api_requestor.py", line 300, in arequest
  File "openai/api_requestor.py", line 605, in arequest_raw
openai.error.APIConnectionError: Error communicating with OpenAI

Additional context
Add any other context about the problem here.

It looks like this site has an http connection, and I'm unable to load the webpage in my browser (http://ai-gateway.myplace.com). I can add an option to disable SSL, which would probably fix this. Is there anything else that would be useful to know about this site so I could give it a test on my own?

I replace the URL as it was an internal site that resolves within a VPN.  It's effectively a proxy of the OpenAI API endpoint, but using it's own keys.  Behavior should be the same, as I have been able to use this endpoint effectively by overriding the OPENAI_API_KEY and OPENAI_API_BASE url's to point to this instead of the default ones.

The SSL key is internal, so it would be trusted normally, but isn't for this case probably because we're using the default Python CA stores which won't have these.

Ok, this makes sense. There are two ways of going about this, the first being an option to disable SSL. From a quick search (see here), it looks like the verify_ssl_certs property for the OpenAI Python client is broken, so while I've made an update to try using it, I've also updated the GGML class as something else to try.
The GGML class was intended to connect to a local llamacpp server, but I believe this has the same API as OpenAI, so switching the base URL there could work. Try like this:
from continuedev.libs.llm.ggml import GGML

config = ContinueConfig(
    ...
    models=Models(
        default=GGML(server_url="http://ai-gateway.myplace.com", verify_ssl=False)  # <-- Can use same verify_ssl property with the OpenAI class, I'm just not certain whether it will work
    )
)

And the second method would be to add certificates manually. If you have access to these on your machine, I've also added a ca_bundle_path property to the OpenAI class. This would seem the best solution.
Changes are on their way through CI right now, I'll update you when the newest version is released (should be ~15 minutes)

Sorry @klauern, just realized I didn't send an update, but the new version is released. Let me know if ca_bundle_paths works, this is definitely the preferred approach

@klauern I'm really sorry I missed this last message. If you're still trying to get this to work, I think the best thing would be to attempt the raw API call from a Python REPL to see if we can narrow down the scope of the problem. I've seen certain situations where it's actually a problem for any python request in general, and I have a few ideas of how to solve if that is the case
For example, you could attempt requests.post("http://ai-gateway.myplace.com//v1/completions", verify=False, json={"prompt": "This is a test"})

I was able to get a chance to test this again and it works!  There were some changes to the UI and whatnot, so I just blew away the entire config in ~/.continue/ and re-built it.  I also think the docs might need to be updated to point to the new package paths for the custom OpenAI endpoint, too, but that's a separate issue.  That said, I see things working and am excited to try it out again.  Thank you

@klauern awesome!
Do you mean the continuedev.libs.llm paths?

Yes, the docs weren't pointing to the same places, so I had to look at the source to find the right path.


Added new a16z logo image, updated logo placement

Updated a16z image/logo on about-us page. Note: I updated the order of the logos for more aesthetic balance -- happy to switch a16z back to the first position, though, if necessary 👍
Before

After

 Updated the a16z logo on about-us


chore: add docs around swift on-device updates

🚀 Deployed on https://6716f1dfdd302701f5985fac--cozy-fox-0defec.netlify.app


Add parallel implementation of operations on Evaluations

Description
Add parallel implementation of operations on the Evaluations struct.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests - should be covered by existing tests? Not sure if there are any though. Batch inversion change is covered by prior tests.
[x] Updated relevant documentation in the code - n/a
[x] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer

hmm the new batch inversion does more inversions, no? maybe you can improve the cost further by doing a serial_batch_inversion across all the per-batch inversions?

The new batch inversion only does one inversion per thread, which is all done in parallel


Add SelectCircle replace usage in OptionsRow and makes MenuItem selectable

Details
cc @parasharrajat Just adds SelectCircle. Small PR moved out of your other PR to help minimize changes.
Fixed Issues
No Issue
Tests / QA Steps

Navigate to /new/group
Select a user
Verify the check mark looks normal
De-select verify the check mark disappears

Tested On

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

Screenshots

Web

Mobile Web

Desktop

iOS

Android

🚀 Deployed to staging by @marcaaron in version: 1.1.21-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @sketchydroide in version: 1.1.22-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


angular2 translate in angular cli build

Hi Robisim,
Could you please help me on angular 2 translate in angular cli project.i am new to angular2

Ok, please note that this isn't the official library of ANGULAR for i18n (it is not ready yet), and ng2-translate is more popular.
However, to install this library you can follow the following steps:
1 - Install angular-cli and create a new app (https://github.com/angular/angular-cli):
npm install -g angular-cli

ng new MyApp

2 - Install the library:
cd MyApp

npm install angular2localization --save

You will see npm-warn beacause angular-cli is not updated to Angular 2.0.0-rc.4, but it is not a problem (you can update it in package.json, if you want).
3 - Add the library to angular-cli-build.js file to vendorNpmFiles array (https://github.com/angular/angular-cli/wiki/3rd-party-libs):
module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      ...
      'angular2localization/**/*.+(js|js.map)'
    ]
  });
};

4 - Configure SystemJS mappings to know where to look for the library: navigate into MyApp > src folder and add to system.config.js file:
/** Map relative paths to URLs. */
const map: any = {
  'angular2localization': 'vendor/angular2localization'
};

/** User packages configuration. */
const packages: any = {
  'angular2localization': { format: 'cjs', defaultExtension: 'js' }
};

A very basic usage of the library:
src > app > main.ts file:
import { bootstrap } from '@angular/platform-browser-dynamic';
import { HTTP_PROVIDERS} from '@angular/http';
import { enableProdMode } from '@angular/core';
import { AppComponent, environment } from './app/';

if (environment.production) {
  enableProdMode();
}

bootstrap(AppComponent, [HTTP_PROVIDERS]);

src > app > app.component.ts file:
import { Component } from '@angular/core';

import {
  LocaleService,
  LocalizationService,
  TranslatePipe } from 'angular2localization/angular2localization';

@Component({
  moduleId: module.id,
  selector: 'app-root',
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css'],
  providers: [LocaleService, LocalizationService], // Inherited by all descendants.
  pipes: [TranslatePipe]
})
export class AppComponent {

  constructor(public locale: LocaleService, public localization: LocalizationService) {

    // Adds a new language (ISO 639 two-letter or three-letter code).
    this.locale.addLanguage('en');
    // Add a new language here.

    // Required: default language and expiry (No days). If the expiry is omitted, the cookie becomes a session cookie.
    this.locale.definePreferredLanguage('en', 30);

    // DIRECT LOADING
    var translationEN = {
      TITLE: 'Angular 2 Localization with Angular command line'
    }
    // Add a new translation here.

    // Required: adds a new translation with the given language code.
    this.localization.addTranslation('en', translationEN);
    // Add a new translation with the given language code here.
    this.localization.updateTranslation(); // Need to update the translation.

  }

  // Gets the language code for the LocalizationService.
  get lang(): string {

    return this.localization.languageCode;

  }
}

src > app > app.component.html file:
<h1>
  {{ 'TITLE' | translate:lang }}
</h1>

Comment *.spec.ts files (they are used for testing).
Then run from command line:
ng build

ng server

Wait for building and then visit: http://localhost:4200/
For more details about using the library, look at the specifications. If you use async loading, please note that you will need to put the json file in the ./dist folder.
I hope this helps.
Greetings

Hi Robisim,
First i would like to thank you for spent your valuable time for this issue.Second thing you gave the steps very clearly from scratch..This works perfectly fine..I have one query..for importing this service to every component individually ,how about we import it in "main.ts" file.. and how to i keep separate files for each language instead we giving directly..
Thanks & Regards
Venky.

Hi Roberto,
thanks for writing this as it fulfills a great need.
I installed it by using npm install angular2localization --save.
I see that the directory for it has been created under node_modules.
But when I try to use LocaleService (that's all I need for the moment), I get an Angular error: "DI exception...no provider for...LocaleService".
Then I look at the src code, and I don't see that LocaleService has an @Injectable annotation.
Any clues about why Injectable is missing -- did I miss a step?
Thanks
Aneela

Hi Aneela,
LocaleService  is injectable.
Please, check in your component if it has been added to providers:
@Component({
  ...
  providers: [LocaleService], // add here LocaleService
})

export class AppComponent {

  constructor(public locale: LocaleService) {
    ...
  }
}

In addition, if you are using angular-cli, check if the library has been copied to vendor in ./dist folder as explained above.

Very helpful. Thanks.

Hi everyone. You must apply these instructions to the version of angular-cli that uses SystemJs. The new angular-cli@webpack version does not need to set anything. See library specification and official documentation.

Use ng2-translate - https://github.com/ocombe/ng2-translate
Sample Project - https://github.com/ramsunvtech/angular-basic/tree/ng-2.x-cli


Exceptions declared using "exception" have no coloring

Exceptions declared using the "exception" keyword have no syntax coloring in the text editor. They do in tooltips though.
Exceptions declared using "type" are fine.

Visual FSharp Tools <IP_ADDRESS>51001.

Fixed in https://github.com/Microsoft/visualfsharp/pull/3102

@cartermp can we close this?


French mobile number : +33 7 {{phoneNumber07WithSeparator}}

Hello
Some error occurs with this code
    $faker = Faker\Factory::create('fr_FR');
    echo  $faker->mobileNumber;

In some case, I get as result :  +33 7 {{phoneNumber07WithSeparator}}
Thanks :)

I'll make a PR for this

Already fixed by #1343

Thanks to have see this issue.
Then is not available from composer download. Last release is august 2017 and patch looks done in november.
Maybe is time to propose a new release :)
thank alot

see #1391


Would you be ok to squash both of those commits into just one?  It makes things easier for future git operations when Pull Requests are one commit big. :smile:

OK. Mind if I do a push -f?

Was I correct to open the pull request against master, or should I have used develop?

Oh yes, please open it against develop.  Master is stable.  By all means, you can do force push to your own branch. :+1:
Patterns aren't something I've thought too much about yet, but what you've presented is pretty much what I had in mind.  I'm not sure if there would be a better way to handle it though.  At least we abstract it away from the backend.
Finally, can you also rename pattern to patterns so it's clear we're passing in a list instead of a single pattern?  I just verified that git ls-files can handle multiple arguments so this should be fine.
Thanks!

Squashed into #46.


suggested spec for plugin, dashboard and rules command line import / export

Suggestion to rewrite the Dataloop command line utility (dlcli) to initially support the import / export of plugins, dashboards and rules from the command line.
The dlcli will use a lower level Dataloop API client library that will also be made available. Both will be written in Python but we will probably support additional languages in the future.
We will extend the command line utility so that it becomes a viable replacement for the web interface.
dlcli <apikey> import <directory name>   # imports all files

dlcli <apikey> export   # exports everything

dlcli <apikey> --import-plugin <plugin name>   # imports a specific plugin

dlcli <apikey> --export-plugin <plugin name>   # exports a specific plugin

dlcli <apikey> --import-dashboard <dashboard name>   # imports a specific dashboard

dlcli <apikey> --export-dashboard <dashboard name>   # exports a specific dashboard

dlcli <apikey> --import-rule <rule name>   # imports a specific rule

dlcli <apikey> --export-rule <rule name>   # exports a specific rule

dlcli <apikey> --import-plugin <plugin name> --import-dashboard <dashboard name> --import-rule <rule name>

In all cases prompt for overwrite y / n.
YAML Wireframe
elasticsearch.yaml:
Name: elasticsearch
Type: dashboard
Period: 1 hour
Widgets:
    - Title: Active Shards
        Column: 1
        Row: 1
        Size X: 1
        Size Y: 1
        Type: Detailed Chart
        Symbol: Fa-Cogs
        Metric: elasticsearch.active.shards
        Filter:
        Scope:
            agents:
            tags: prod, elasticsearch
    - Title: Relocating Shards
        Column: 2
        Row: 1
        Size X: 1
        Size Y: 1
        Type: Detailed Chart
        Symbol: Fa-Cogs
        Metric: elasticsearch.relocating.shards
        Filter:
        Scope:
            agents:
            tags: prod, elasticsearch

Perhaps --export and --import is more consistent than export and import.

Ok, updated


Enhancement: Middle Scroll

The title speaks for itself: add a Middle Scroll option (only boyfriend arrows on the middle), but make it work that you can tweak how transparent the notes of your opponent are on your row so you will still be able to see them.

so basically funky friday middle scroll

yea something like that but the way you see opponnent arrows is different

optimizations does this
i mean it sends you to the Shadow Realm but it works

yeah and i want it to NOT FUNKIN' MAKE THE SCREEN BLACK

Soo..... will it get added?

Changed it in a different post


Do you have pre-trained GPN for different genomes?

E.g. GPN for Mouse, human, D. Mel?

Hi! Not yet but we'll let you know!

So it is only trained for arabidopsis currently?

Looking forward to mouse and human genomes too! I could help train them if needed.

Thank you for your interest! It's been quite challenging to obtain good results in human but we are making significant progress! It will still be a few months out... Once we have a good recipe for human it should be easier to port into other complex genomes.

Hello! We've recently released a human model, although it's with the alignment-based version (GPN-MSA).  You can see details in the README.

Sounds good! Thanks for sharing and letting us know.


Snow Crash won't build with MinGW on Windows

In case of changing the setting on configure file in order to force GYP to build the makefile on windows and after that to compile the code using minGW, the produce library for snow crash does not working correctly.
It recognize the BluePring name and the rest of the BluePrint will be assume as the description.
CC. @zdne

Hi @alikh31,
Seems this has been open for some years now. Would you be able to elaborate on what problem you are having here (if it is still applicable, perhaps the problem has been fixed in later versions).
Would love to see some steps to reproduce/sample blueprint causing a problem.
Thanks!


Enable Splunk HEC format for all sinks

Currently Klogging can specify a Splunk HEC endpoint and will send log events there in HEC (HTTP Event Collector) format.
It is not able to render events in HEC format and send them to other sinks, e.g stdout. The current HEC renderer is bound up in the Splunk sink code.
This change is to separate rendering from sending, as for other formats.

Re-reading Splunk docs, especially on event metadata, I have a better understanding of the meaning of sourcetype and source keys.


Upgrade to php7.0

Attempt to upgrade from php5.6 to php-7.0

@gcnonato
Thanks for the pull request !! we will update on this soon :)

No problem, I hope it helps.
Cheers!

Hello @gcnonato ,
Thanks for pull request. We are going to adding PHP 7.0 and PHP5.6 both support, so that user can run either PHP7.0, PHP 5.6, or both.
So for now I am closing this pull request.

+1 to both. Thanks for your work, @gcnonato

thank you I just updated to 3.5
how to update php version to 7?


Update docs for TikiSdk.swift for docs portal

The TikiSdk.swift is the top-level entry point for the API and the first piece of code the developer will have contact with. Its documentation needs:

[ ] Library level docs with an explanation about TikiSdk and its usage
[ ] More details in each method docs with examples of how to use it

These docs belong to docs portal


Upgrade to include<EMAIL_ADDRESS>Fix tests that used deprecated features

CLA is valid!

Coverage remained the same at 100.0% when pulling 3518ecbbacab08635e3687685ba8fd8b69662e71 on react13 into a6bab8fa3c3318cdfd75e16566b677708b464477 on master.

Coverage remained the same at 100.0% when pulling 3518ecbbacab08635e3687685ba8fd8b69662e71 on react13 into a6bab8fa3c3318cdfd75e16566b677708b464477 on master.

:ship:


Compile fails due to new tsetse check

/cc @heathkit
updating Angular to rules_typescript at head
compiling //packages/core/test/render3:render3_lib
Compilation failed TypeError: tsutils.isThenableType is not a function
    at Object.checkForTruthy [as handlerFunction] (/usr/local/google/home/alexeagle/.cache/bazel/_bazel_alexeagle/5c094f47f582dc47fc598194e749d5c0/execroot/angular/bazel-out/host/bin/external/build_bazel_rules_typescript/internal/tsetse/rules/ban_expect_truthy_promise_rule.js:70:22)
    at run (/usr/local/google/home/alexeagle/.cache/bazel/_bazel_alexeagle/5c094f47f582dc47fc598194e749d5c0/execroot/angular/bazel-out/host/bin/external/build_bazel_rules_typescript/internal/tsetse/checker.js:92:37)

my guess is that tsc_wrapped is seeing the user's node_modules directory instead of its own packaged deps in @build_bazel_rules_typescript_tsc_wrapped_deps

It's another case of #88

For anyone who might run into this, the following worked for me
bazel clean --expunge


IE 11 Support for two columns?

Is there anything specific we have to do for it to render correctly in IE 11?
While it works having two columns makes it so the items do not render correct with the checkbox in front of each selection.

"two columns" functionality was realized though css.
Just improove css if it doesn't work with IE 11. Or propose it to me I could show you how to embded it through configuration.
What css you need for which element?

I am currently using the cssPatch option when calling the plugin.
cssPatch: {
choices: {columnCount: '2'}
}
Renders great in Edge and Chrome. IE 11 is not correctly rendering checkbox for most of the items in the second column.

columnCount: '2'  means add column-count: 2  to the ul element ...  If IE 11 render it bad (I confirm it) there should be the workaround found: to add additional css to the elements UI or LI.

Go to F12 find the ul class="dropdown-menu" change the style display:none to display:block and play with css and html to force the IE work correctly then send your results to me.

Or  just use this snippet:

		<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
    			rel="stylesheet">

						<input class="custom-control-input"
     							style="color: inherit;"
     							type="checkbox"
     							formnovalidate="">
							Alabama

							<input class="custom-control-input"
     								style="color: inherit;"
     								type="checkbox"
     								formnovalidate="">
								Alaska

								<input class="custom-control-input"
     									style="color: inherit;"
     									type="checkbox"
     									formnovalidate="">
									Arizona

As you see you should not bother about BsMultiselect.css - there are no such file and no custom css . All what is used only bootsrap.css and short inline css.  As it should: it render correctly in Chrome and doesn't in IE11.
This is not BsMultiSelect specific...  If you find workaround I will show you to embded it to the BsMultiSelect  . Deal?

Stop. I've found that with latest version<EMAIL_ADDRESS>it seems it works correctly.

just update BS to 4.6

Switched to bootstrap 4.6 and the two columns render better. Thanks!


Startup Error

Starting the consumer errors out with the following error:
>>/opt/anaconda2/bin/kafka_splunk_consumer -c config/kafka.yml
Process worker-0:
Traceback (most recent call last):
  File "/opt/anaconda2/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/opt/anaconda2/lib/python2.7/multiprocessing/process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/anaconda2/lib/python2.7/site-packages/kafka_splunk_consumer-0.6b0-py2.7.egg/EGG-INFO/scripts/kafka_splunk_consumer", line 58, in worker

Not sure what this is about

@dusts66
What does your config/kafka.yml look like?

Here is the config @sghaskell
hec:
    # Splunk HEC host or VIP to load balanced HEC instances
    host: <IP_ADDRESS>
    # HEC port - default 8088
    port: 8088
    # App specific UUID used by HEC - generate your own using 'uuidgen' in Linux
    #channel: 408c8da1-b9b1-460b-aeb4-56426865bca1
    channel: fbf00d67-0287-49b3-8cf7-54db7ee6f2d1
    # HEC token for your input
    token: 0688D98D-06FD-4AA9-B195-19EAE1D89FAE
    # Set input sourcetype
    sourcetype: cisco:cmx
    # Set input source
    source: ITAM_Splunk
    # Use HTTPS
    # Valid values: True (HTTPS)|False (HTTP)
    use_https: False
    # Verify SSL certificate
    # Valid values: True|False
    verify_ssl: False
    # use gzip compression when sending data to HEC
    # Valid values: True|False
    use_compression: False
    # Compression level 0-9; 0=none, 1=fastest/least, 9=slowest/most (default: 9)
    compresslevel: 5
kafka:
    # List of Kafka brokers <host>:<port>
    brokers:
        - xrdcldbda010001.unix.medcity.net:9092
        - xrdcldbda010002.unix.medcity.net:9092
        - xrdcldbda010003.unix.medcity.net:9092
    # Zookeeper hostname/ip
    zookeeper_server: xrdcldbdn010002.unix.medcity.net
    # Zookeeper port
    zookeeper_port: 2181
    # Arbitrary group name used for coordinating workers in topic
    consumer_group: shark
    # Kafka topic name
    topic: asset_mang
    # Initial offset - Set to earliest for earliest offset or latest for latest offset
    # Valued values: earliest|latest
    initial_offset: latest
    # If you have librdkafka installed and pykafka was built against it, use this to increase speed
    # See: https://github.com/Parsely/pykafka#using-the-librdkafka-extension
    # Valid values: True|False
    use_rdkafka: False

general:
    # Set to number of partitions in the topic for maximum parallelism and throughput
    # Do not exceed number of cores on your system - spread across multiple machines
    # Do not set workers across all instances > # of partitions in topic - will result in idle wokrers
    # Set to 'auto' for python multiprocessing to figure out core count
    # Valid values: auto|<number_of_cores>
    workers: 3
    # Number of messages to send to Splunk in each HTTP call to HEC
    # Data will not be sent until there is batch_size events in the topic.
    # Increase or decrease depending on activity in topic.
    # WARNING: If you set this to 1 it will increase the activity on your network and decrease
    # throughput to the HEC.
    batch_size: 1024
network:
    # Backoff policy settings
    # Number of retry attempts before quitting
    retry_attempts: 5
    # Sleeptime between retries (seconds)
    sleeptime: 60
    # maximum sleeptime (seconds)
    max_sleeptime: 300
    # sleep time (seconds) multiplier applied to each iteration
    sleepscale: 1.5
    # random jitter (seconds) introduced to each iteration, random between [-jitter, +jitter]
    jitter: 5
logging:
    # Valid values: debug|info|warning|error|critical
    loglevel: info

It looks like you're missing the entire ssl: section from your config here. Add that back in and modify it to just say use_ssl: False if you're cluster isn't secured with SSL. It is expecting that section to be present in the config.


add kiliankoe/swift-log-matrix to list of backends

Motivation:
I just created swift-log-matrix for my personal needs, would be cool to have it in the list here as well :)
Modifications:
Add a link to the package to list of backends in the README.

Oh whoops, I just realized I copypasted the wrong link. Is a link to GitHub preferable or is the package index even cooler (since it shows supported platforms and Swift versions better)?

Either is okey, sorry I missed this :)

@swift-server-bot test this please

@swift-server-bot test this please

Thanks for the merge @ktoso! 😊


Support Unix socket for metrics address

Proposal
For current Prometheus, it seems that the metrics address to be pulled must be a valid TCP hostname. If Prometheus supports to pull from HTTP over Unix socket, each metrics server won't use a dedicated port to serve for Prometheus.
And I found the related comment:

If my idea does not work, we should still scrape using HTTP (maybe allow unix socket on linux) because changing this would change a lot of the semantics around scraping.
Originally posted by @roidelapluie in https://github.com/prometheus/prometheus/issues/9706#issuecomment-964914172

This interests me as well. In my case I am tunneling exporters via SSH to the machine running Prometheus, so it makes more sense to use UNIX sockets than ports for each machine.
HTTP over UNIX socket should work fine and very likely most of the underlying connection code won't care about the difference. I will take a look next week and possibly begin drafting a pull.

Hi @DaAwesomeP, I'm curious about how exactly HTTP over Unix socket would work in Prometheus. Would it be Unix+HTTP in the URL? Additionally, how would HTTPS work in this case? It seems to raise a lot of questions. Maybe @rfratto can provide some insights as well. Thanks!

A UNIX socket can almost always be treated functionally the same as any other TCP socket, minus the hostname and port. It's very common to see web applications expose their HTTP endpoints as a UNIX socket that then get reverse-proxied from something like Nginx or Apache.
A URL like:
http://my-host.xyz:80/metrics

becomes
/path/to/socket.sock/metrics

A UNIX socket can almost always be treated functionally the same as any other TCP socket, minus the hostname and port. It's very common to see web applications expose their HTTP endpoints as a UNIX socket that then get reverse-proxied from something like Nginx or Apache.
A URL like:
http://my-host.xyz:80/metrics

becomes
/path/to/socket.sock/metrics

But really this URL transformation is not accurate. In the case of the TCP socket, first the TCP layer opens the connection to my-host.xyz:80 and then the path /metrics occurs in the HTTP layer. Similarly for the UNIX socket first you open the connection to /path/to/socket.sock and then pass /metrics over the HTTP layer.
The handling of HTTP and HTTPS is 100% the same. The transport layer (TCP replaced with UNIX socket) is what changes.
I need to explore how exactly to do this in Go, but the Dialer just works with UNIX sockets in place of TCP: https://pkg.go.dev/net#example-Dialer-Unix

This sounds good. I have some services with a builtin exporter at /metrics (e.g. gitea and hedgedoc), where the whole service is listening to a UNIX socket proxy forwarded by nginx. As a workaround, I have setup nginx to listen on localhost/metrics/<service> and proxy forward http://unix:/run/<service>/<service>.sock:/metrics, but it would be nice to be able to skip nginx and just gather metrics directly from the socket, since it's all on the same host.
Here's the relevant nginx config for anyone interested
http {
  upstream hedgedoc {
    server unix:/run/hedgedoc/hedgedoc.sock;
  }

  upstream gitea {
    server unix:/run/gitea/gitea.sock;
  }

  # Metric endpoints
  server {
    listen <IP_ADDRESS>:80;
    listen [::1]:80;
    location /metrics/gitea {
      proxy_pass http://gitea/metrics;
    }
    location /metrics/hedgedoc {
      proxy_pass http://hedgedoc/metrics;
    }
  }

  # Example of normal endpoint
  server {
    listen <IP_ADDRESS>:443;
    listen [::0]:443;
    server_name hedgedoc.example.com;

    # Misc SSL config
    # ...

    location / {
      proxy_pass http://hedgedoc;
    }
  }
}

Did you try the systemd socket that we have in the latest releases?
Le lun. 24 juil. 2023, 13:26, Øystein Tveit @.***> a
écrit :

This sounds good. I have some services with a builtin exporter at /metrics
(e.g. gitea and hedgedoc), where the whole service is listening to a UNIX
socket proxy forwarded by nginx. As a workaround, I have setup nginx to
listen on localhost/metrics/ and proxy forward http://unix:
/run//.sock:/metrics, but it would be nice to be able
to skip nginx and just gather metrics directly from the socket, since it's
all on the same host.
Here's the relevant nginx config for anyone interested
http {
upstream hedgedoc {
server unix:/run/hedgedoc/hedgedoc.sock;
}
upstream gitea {
server unix:/run/gitea/gitea.sock;
}
Metric endpoints
server {
listen <IP_ADDRESS>:80;
listen [::1]:80;
location /metrics/gitea {
proxy_pass http://gitea/metrics;
}
location /metrics/hedgedoc {
proxy_pass http://hedgedoc/metrics;
}
}
Example of normal endpoint
server {
listen <IP_ADDRESS>:443;
listen [::0]:443;
server_name hedgedoc.example.com;
# Misc SSL config
# ...

location / {
  proxy_pass http://hedgedoc;
}

}
}
—
Reply to this email directly, view it on GitHub
https://github.com/prometheus/prometheus/issues/12024#issuecomment-1647727903,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACHHJX35DD4E4ZY4HWN3G3XRZLV7ANCNFSM6AAAAAAVI5MMVU
.
You are receiving this because you were mentioned.Message ID:
@.***>

I cannot find what you are referencing. I've grepped through release notes, docs, and the codebase, but I didn't see any relevant mentions of systemd nor sockets?

@roidelapluie it is currently possible for the exporter-toolkit to listen on a UNIX socket via a Systemd socket activation, but it is not currently possible for Prometheus to query these socket directly (unless I missed a commit/pull somewhere).
In my own installations I have also used socat to convert a UNIX socket to a TCP port listener, but that method has its own flaws/issues similar to using Nginx as a reverse proxy (accomplishes same goal).

As a work around, you can run the following docker container, and access metrics from inside the network or from the host exposed port:
docker run -d --restart=always \
	--network myNetwork \
	-v /path/to/socketfile.sock:/path/to/socketfile.sock \
	alpine/socat \
	tcp-listen:2375,fork,reuseaddr unix-connect:/path/to/socketfile.sock

or without docker:
socat tcp-listen:2375,fork,reuseaddr unix-connect:/path/to/socketfile.sock

test it with:
curl --unix-socket /path/to/socketfile.sock http://localhost/

Discussed at the bug-scrub:
We felt that something in target config would be needed to flag that a Unix socket should be used, and then the scraping code would be changed to interpret that config and use Unix sockets or TCP sockets as required.

I am using the Docker socat workaround in production. The caveat is if you need multiple connections to the socket. To handle this you must put socat in fork mode, which means that it won't restart/detect if a UNIX socket closes and reopens (i.e. providing service restarts or SSH tunnel reconnects). To solve this I additionally have a Systemd path unit watching the UNIX sockets with the PathModified flag that then restarts the socat containers when a UNIX socket is reopened. I never tried using Nginx for this (I should have thought of that!), so it might handle UNIX socket reconnection better. An advantage of many socat containers is that each has its own hostname (scales easily instead of many ports or having to adjust URL paths).
It was a lot to set up, but with this I am successfully and reliably able to reverse SSH tunnel exporters from another machine without polluting the port listeners on the Prometheus machine. Native UNIX socket support would simplify this a lot.
For implementation, it could be as simple as differentiating between a URL starting with http://, https://, and unix:// (or could just look for paths starting with a /). There would also need to be a way to manually provide a hostname (not required for the connection but for how it is represented in Prometheus). I solved this by naming my socat containers.

HTTP over unix socket would be pretty useful for stuff like HAProxy stats. I'd imagine syntax should look something like unix:///file/path.sock?path=/metrics" or 'unix+http:// if we want to differentiate vs raw TCP usage.
Other option would be something like unix://[/file/path.sock]/metrics.
I'm not sure how often passing other headers to unix socket would be required but simplistic solution could be just having header argument in url when there user can do whatever they need to do

apache uses this semantic:
ProxyPass unix:/var/run/test.sock|http://<IP_ADDRESS>/api/test


Write a C program to find surface area of a cube

Description
Write a C program to find surface area of a cube
Surface area of cube = 6 × Side^2
Side : 2

Surface area : 24

How to contribute

Save the solution in FindSurfaceAreaOfACube.c file
Add FindSurfaceAreaOfACube.c file in find-surface-area-of-a-cube folder

!assign

Hey @anxkhn,
This issue has been assigned to you for more than 15 days.
We are unassigning you from this issue.
If you are still interested in contributing to this issue, please get auto-assigned on the issue by commenting !assign again.
Thanks for your contributions :)

!assign

!assign