Allow to connect to Zeebe with a custom certificate

This adds a flag for custom SSL certificate: --zeebe-ssl-certificate=<path-to-file>.
Protocol http(s) is now required for the contact points of self-hosted Zeebe instances.
Closes #3028

How to test this in action
Prerequisites

Running Docker.
Installed openssl.

Steps

Clone this repo: https://github.com/barmac/zeebe-tls-connection-test
In the repo, run npm run cert. This will generate cert.pem file which will be our certificate. Note that you may need to adjust the generate-cert.sh file, namely the /usr/local/opt/openssl/bin/openssl part to work on your OS. This is done specifically for MacOS.
Run npm run zeebe in a separate terminal window. This will run locally a Zeebe instance which will use the certificate for SSL.

Flag
Run Camunda Modeler with flag --zeebe-ssl-certificate=<path-to-cert.pem>, and try to deploy and start instance of self-managed C8. Use https://localhost:26500 as the contact point.
System keychain
After the flag part succeeds, add the certificate to the system keychain and make sure to mark it as trusted. Then, run Camunda Modeler with the flag, and try to deploy and start instance as in the previous part.

I just discovered that when we use system certificates, one cannot connect to C8 SaaS anymore 🤡

OK so this is probably because we only fetch some of the certificates. Cf. https://github.com/jfromaniello/mac-ca/blob/master/index.js#L12 <- this part is missing in VSCode, and consequently our implementation.

We need manual tests for each of the platforms (Linux, Windows, Mac):

self-hosted Zeebe with TLS
self-hosted Zeebe without TLS
C8 SaaS

For self-hosted, you can use scripts from https://github.com/barmac/zeebe-tls-connection-test

Artifacts:

https://camunda-modeler-on-demand.s3.eu-central-1.amazonaws.com/3028-select-certificate-via-flag/camunda-modeler-3028-select-certificate-via-flag-linux-x64.tar.gz
https://camunda-modeler-on-demand.s3.eu-central-1.amazonaws.com/3028-select-certificate-via-flag/camunda-modeler-3028-select-certificate-via-flag-mac.dmg
https://camunda-modeler-on-demand.s3.eu-central-1.amazonaws.com/3028-select-certificate-via-flag/camunda-modeler-3028-select-certificate-via-flag-mac.zip
https://camunda-modeler-on-demand.s3.eu-central-1.amazonaws.com/3028-select-certificate-via-flag/camunda-modeler-3028-select-certificate-via-flag-win-ia32.zip
https://camunda-modeler-on-demand.s3.eu-central-1.amazonaws.com/3028-select-certificate-via-flag/camunda-modeler-3028-select-certificate-via-flag-win-x64.zip

I am moving this to in progress due to some problems reported in the original issue: https://github.com/camunda/camunda-modeler/issues/3028#issuecomment-1194247922

We had a meeting about this in which @CatalinaMoisuc suggested we cross link from the flag documentation to the self-managed self-signed certificate docs.

This closes an issue that numerous people came across in C7 already.

Just for clarification, this is fixed for C8 only. We could fix it for C7 as well, as a separate topic.

I tested it on linux and I can connect to all distos (SaaS, local TLS, local insecure). Thank you for the setup repo, this helped a lot 👏

I was able to test this on Windows.
Steps

Install Docker Desktop for Windows
Generate certificate through openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 --nodes -addext "subjectAltName=IP:<IP_ADDRESS>,DNS:localhost" (should be installed if Git for Windows is installed)
Run docker run --rm -p 26500:26500 -e ZEEBE_BROKER_NETWORK_HOST=<IP_ADDRESS> -e ZEEBE_BROKER_GATEWAY_SECURITY_ENABLED=true -e ZEEBE_BROKER_GATEWAY_SECURITY_CERTIFICATECHAINPATH="/usr/local/zeebe/cert.pem" -e ZEEBE_BROKER_GATEWAY_SECURITY_PRIVATEKEYPATH="/usr/local/zeebe/key.pem" --mount type=bind,source="C:/zeebe-tls-connection-test/cert.pem",target="/usr/local/zeebe/cert.pem" --mount type=bind,source="C:/zeebe-tls-connection-test/key.pem",target="/usr/local/zeebe/key.pem" camunda/zeebe:8.0.4 (had to use PowerShell, Git Bash didn't work)
Run Camunda Modeler through "Camunda Modeler.exe" --zeebe-ssl-certificate=cert.pem and deploy ✔
Add certificate through certutil.exe -addstore root c:\zeebe-tls-connection-test\cert.pem
Run Camunda Modeler and verify ✔

Works on Windows ✅

OK so I will merge this and we still need to update the documentation.

OK so I will merge this and we still need to update the documentation.

Done via https://github.com/camunda/camunda-platform-docs/issues/1268


submit form translate problem with setContext() method in Message-model

Hi,
I have an issue with the compatibility to the RainLab translate plugin.
I got this error after I submitted the form:
BadMethodCallException: Call to undefined method RainLab\Translate\Models\Message::setContext()
So obviously the setContext() method doesnt exists anymore since I moved to October 3.0.
Please check it and fix it.
Thanks.

Pull request #18 has been merged in. I apologize for the delay.
Thanks!


making possible wrapping of dots with arrows

in case of cusomizing of controlling elements:
appendArrows: '.slider ~ .slider-controls',
appendDots: '.slider ~ .slider-controls',
it would create the elements in form of:
← o o o →
width-ajustable and without absolute positioning.

I would like this feature!


fix(control-input-gson): register control input deserializer (#68)

register the appropriate gson deserializer for control input events, allowing control input event handlers to receive events (resolves #68)

@pahimar,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


accent_color is always returning None in Member object even if they have an accent_color

Summary
In cog command I was tring to get a command author's accent_color but it was returning None even if I have default banner
Reproduction Steps

Minimal Reproducible Code
@command()
    async def test(self, ctx):
        member = ctx.author
        await ctx.send(embed=Embed(
            description=member.accent_color,
            color=member.accent_color or Colour.red()
        ))

Expected Results

Actual Results

Intents
I am using all intents Intents.all()
System Information
Python Version: 3.9.7
Nextcord Version: 2.0.0a2
Checklist

[X] I have searched the open issues for duplicates.
[X] I have shown the entire traceback, if possible.
[X] I have removed my token from display, if visible.

Additional Context
No response

This is correct, accent colour is not cached.
Like with banner and such, you must fetch the user or member to get this kind of info


remove print("TODO ...")

Fix a small annoyance

I think we have to add custom logging for something like this.


Drawing geometry objects

webgl earth just provide the API of polygon,could u tell me how to draw a line?

Lines are not exposed to the API yet, as there was no client who requested this in the past.
Patch with implementation made by you or your team is welcome...
Alternative would be development contract (against a quote which we can provide from http://www.klokantech.com/contact/) for the work may help to make this happen.

I dig up this topic to know if something has been found ?
I'm trying to hack polygon system by putting 2 points on same location so simulate a line, but it's not enough clear for now.
Any one has find a good way to do it ?

Hey,
Here is my solution with the polygon
    const A = {lt: 40.7306, lg:-73.9352}
    const B = {lt: 47.4979, lg: 19.0402}

    let lineBetween = function(B, A) {
        let coords = [];

        const N = 100;

        const m = (A.lt - A.lg) / (B.lt - B.lg)
        for (let i = 0; i < N; ++i) {
            const lt = A.lt - i / N * (A.lt - B.lt);
            const lg = A.lg - i / N * (A.lg - B.lg)

            coords.push([lt, lg]);
            coords.unshift([lt, lg]);
        }

        return coords;
    }


Bug: Testscript passes when it should fail

Here is the Main function for match:
func Main() int {
	m, err := NewMatcher(
		WithSearchTextFromArgs(os.Args[1:]),
	)
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		return 1
	}
	m.PrintMatchingLines()
	return 0
}

Let's remove the ability to process arguments
func Main() int {
	m, err := NewMatcher()
	if err != nil {
		fmt.Fprintln(os.Stderr, err)
		return 1
	}
	m.PrintMatchingLines()
	return 0
}

Executing the tests will still pass.

Let's also modify matches_lines_from_stdin.txtar to add one additional line that should match
stdin three_matching_lines.txt
exec match MAGIC
stdout -count=1 '^this line is MAGIC\n'
stdout -count=1 '^MAGIC is also on this line\n'
stdout -count=1 '^and MAGIC is here too\n'

-- three_matching_lines.txt --
this won't match
this line is MAGIC

MAGIC is also on this line
but not this one
and MAGIC is here too
MAGIC is a lie

Tests still pass, even though we haven't added a stdout directive to match the new line.

Good spotting, @cassamajor! Have you read The Power of Go: Tests? You're certainly thinking like someone who has.
Can you suggest a suitable change to catch this bug?

I haven't, but it's on my list to read!
Unfortunately, I am not familiar with testscript, and I do not know a suitable fix.


Support processing package-level annotations, specifically, to get namespaces

If you generate Java code from an XML Schema with JAXB's xjc tool, you normally get a package-info.java file generated that contains a package-level annotation. Here's an example:
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2017.03.27 at 11:06:28 AM AEDT
//

@javax.xml.bind.annotation.XmlSchema(namespace = "http://vocabs.ands.org.au/registry/schema/2017/01/vocabulary", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package au.org.ands.vocabs.registry.schema.vocabulary201701;

Note the namespace property, with the value as defined in my XML Schema. And in this case, the namespace property is not then also included in the @XmlType annotations at the class level.
If you use the generated classes in your API, so that swagger-core includes their definitions in the generated swagger.json, swagger-core currently doesn't process these package-level annotations, so the namespace properties get lost when generating the model which is then used to generate swagger.json.
There is a workaround: add the -npa option to the xjc command line. Then, package-info.java is not generated, and the namespace property is included at the class level.
But, it would be nice to have support for the package-level annotation @XmlSchema ...

I have added a fix for this issue and created a pull request - https://github.com/swagger-api/swagger-core/pull/2244

I have added a fix for this issue and created a pull request - https://github.com/swagger-api/swagger-core/pull/2246

Thank you for this feature.


clarification on required vs optional

The documentation needs some clarification in the Add review policy under Automatically include code reviewers section.

How do we indicate that the policy is either optional or required for this policy?
Is set by using the --blocking flag on the policy command?

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

ID: c8131327-0712-d643-9fd5-f172b25bd88e
Version Independent ID: d39c0fdb-90a3-e3f2-92cc-c5135e93bd7d
Content: az repos policy required-reviewer
Content Source: latest/docs-ref-autogen/repos/policy/required-reviewer.yml
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

route to CXP team


Modified style in merge function.

suggested by @Quasilyte

I wonder what other team members think about this:
-func merge(from *low.Ring, to *low.Ring) {
+func merge(from, to *low.Ring) {

Type switch change looks like a clear win in terms of readability.

This is not urgent. Let's firstly make new "merge" tests and then make sure that they pass with this.

@ifilippov , Current tests pass, it shouldn't change anything - just simplified syntax.

If new merge test pass - then you can merge.


Support for Included ssh config files

Vscode should show hosts in included ssh config files.

https://github.com/microsoft/vscode-remote-release/issues/2446


Integrate more themes into EonTimer.

I wanted to fork this and make a dark version but I'm unable to build it for this reason

And I have no idea why if you know why this happening please let me know.
Thanks.

The dependencies were hosted with a personal maven repository and I have been in the process of migrating those to being hosted at https://oss.jfrog.com. Planning on updating master here soon with the changes.

Oh alrighty btw about my dark theme it's just a big ol' CSS edit and a new picture.

Yeah I downloaded it and extracted the contents of the JAR to see the changes. The theme looks really good! I’ll create a feature request for custom theming to track progress on it and ping you when the mechanism for selecting the theme is finalized. We can add your theme as a separate CSS file that can be selected in the UI.

I'd have a go at it but I haven't got a clue about Java FX or Java just a little bit of CSS.

Oh btw this happens when EonTimer breaks
error.txt

That error is really weird. NullPointerExceptions are notorious for killing Java applications. Has that happened again since you commented last?

Yeah it's happened haven't got a clue why and this happens without my edited one.

@dylmeadows Update the bug doesn't happen if visual is turned off.

So it's happening when the visual cue is flashing? Is it getting out of sync and staying colored in after the timer has stopped?

That exactly


How to calculate the Computation of SSM?

Could you explain how to get the computation of SSM like your equation(8) in paper?

Hello, I have the same confusion. Have you resolved it?

Could you explain how to get the computation of SSM like your equation(8) in paper?


Add to_hex(&self) -> String to FieldElement

Add to_hex(&self) -> String function to FieldElement and implement it where needed
This function should create an hexstring representing the number in FieldElement. It should abstract the user from the internal representation, so if the number is in Montgomery form, it should convert it back to the original form before returning the element.

We could use the hex crate and implement its traits and merge this issue with #103

Why should this method be implemented in IsField instead of FieldElement? I understand IsField to be a trait that adds field behavior to a struct, so returning a hex string of the number in IsField doesn't seem as useful as returning the hex string of a FieldElement.

You're right @iognorman20. I have changed it to be on FieldElement. As a sidenote, it would also be useful if it can be a const fn. If any other issue arises feel free to ask

I am looking this issue currently.


DiscreteEvents: solve_ivp should evaluate fun() at specific, user-specified timepoints

I'd like to force solve_ivp to evaluate the ODE RHS fun() at specific timepoints, in order to implement the adjoint method (as in this paper).

Registering an event at specific timepoints with solve_ivp returns the ODE solution at those timepoints using interpolation, and skips evaluating fun() at those points.
Similarly, supplying t_eval to solve_ivp at those points does not actually evaluate fun() at those t, but instead, gives you back a solution with the interpolated values at those points.

I'd like to be able to specify a set of timepoints at which the solver must evaluate fun().

Note: LSODA has an events argument for this purpose underneath, but it isn't exposed by the scipy wrapper:
https://github.com/scipy/scipy/blob/4ec4ab8d6ccc1cdb34b84fdcb66fde2cc0210dbf/scipy/integrate/lsoda.pyf#L27
However, R's deSolve and others do expose this option (see events in https://www.rdocumentation.org/packages/deSolve/versions/1.28/topics/lsoda)

This is not implemented so far, however could be easily added I think. In the meantime, you can simply perform multiple integrations, each time setting the former endpoint as starting time and the new endpoint at the next time point where you want the RHS to be evaluated.

I don't think forcing solve_ivp to evaluate the RHS at particular time points is going to be enough to do what you want. I did not read that particular paper, but when I implemented an adjoint method, it involved altering the state at those particular time points. This is a much different beast. The solver cannot simply continue after such a change (i.e. do not directly manipulate the state vector of an adaptive ODE solver or your will  get wrong answers). The solver must be stopped and restarted at those points.
That being said, the ability to apply discontinuities was one of my original design requirements. I used the step solvers to do just that in my experimental systems biology package Biolucia. Now, this uses the step solvers directly and not solve_ivp. For implementing the adjoint, you could either use the step solvers or just use solve_ivp to solve each interval, and manually apply the discontinuity between each interval.
I am a big believer in using the step solvers to do complex, arbitrary things and leaving solve_ivp to handle the simple case. However, I get the feeling that other people disagree. So if this were to get baked into solve_ivp, it should probably take an argument discontinuities: List[float], which stops and restarts the solver at those particular times. Then there is another argument jump: (t: float, x: Array[float, [nx]]) -> Array[float, [nx]], which is a function that is called at each discontinuity. The function takes the current time and current state and returns a new state. I guess solve_ivp would pass *args to this function also.

@drhagen you're right about the adjoint method, I had been mis-reading the math. I've moved on to using diffeqpy for my particular project, but would still love to see this in scipy.


Set height of Card Details

Any way to explicitly set the height for a displayed view controller?

currently not... the height id dynamic


sh: 1: astro: not found

sh: 1: astro: not found
 ELIFECYCLE  Command failed.
 WARN   Local package.json exists, but node_modules missing, did you mean to install?

have you run pnpm install ?


Added gsap JavaScript library course in Hindi language

What does this PR do?
Add a javascript animation library(GSAP) course in Hindi language
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
Yes, it is available on YouTube
For book lists, is it a book? For course lists, is it a course? etc.
Yes, It is a course
Checklist:

[x] Read our contributing guidelines.
[x] Search for duplicates.
[x] Include author(s) and platform where appropriate.
[x] Put lists in alphabetical order, correct spacing.
[x] Add needed indications (PDF, access notes, under construction).
[x] Used an informative name for this pull request.

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

@eshellman , please merge this PR

It's usually not helpful to add a category for a single resource. Try to find another category, or see if there are other books in our lists that would fit into your category. In this case, just list in the javascript main category

@eshellman , can i add more gsap courses in hindi language as gsap is also js library and i just want to add the courses not the books

sure, 2 courses is enough for a new category


TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

If I add
  const ref = useRef<HTMLDivElement>() as React.MutableRefObject<HTMLInputElement>;
  const { events } = useDraggable(ref, {
    applyRubberBandEffect: true,
  });

and

then my page blows up with the error in the title of this issue.  any ideas?

Ref cant be empty, needs a child element.

I get this issue as well.
const { events } = useDraggable(
  ref as React.MutableRefObject<HTMLDivElement>,
  {
    isMounted: true,
  },
); // Now we pass the reference to the useDraggable hook:

{open && (
  <>

 </>
)}

I was expecting everything to be okay once i passed the isMounted option. Because I'm conditionally rendering the element but I get the issue the OP described above.

Hi all, I also faced this issue and needed the hook to not crash the page even if the ref was invalid so I forked this project and published a safe version here. Install it with npm i react-use-draggable-scroll-safe

Try
  const ref = useRef<HTMLDivElement>() as React.MutableRefObject<HTMLInputElement>;
  const { events } = useDraggable(ref, {
    applyRubberBandEffect: true,
    isMounted: !!ref.current,
  });

I had the same issue, with the same error message. I tried out the solution from @CptMaumau and that worked. It seemed like the ref wasn't rendered when I was calling the hook. So that made the fix for it.
I think we can close this issue then?


Size mismatch in debian repos

While mirroring erlang releases from https://packages.erlang-solutions.com we are encountering size mismatch errors at least in stretch and buster repos:
buster: https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb: size check mismatch 40679732 != 40676556
stretch: https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb: size check mismatch 40343740 != 40345880
Example for debian stretch
Excerpt from Packages-file:
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40345880
MD5sum: 6f3b174928d4ce718e2290a092e34a72

Actual downloaded size:
$ ls -l esl-erlang_25.2.3-1~debian~stretch_amd64.deb
-rw-rw-r-- 1 nobody nogroup 40343740 Feb 24 10:32 esl-erlang_25.2.3-1~debian~stretch_amd64.deb

Actual MD5:
$ md5sum esl-erlang_25.2.3-1~debian~stretch_amd64.deb
0bf3973aa825b45133e7054d735918d6  esl-erlang_25.2.3-1~debian~stretch_amd64.deb

Example for debian buster
Excerpt from Packages-file:
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40676556
MD5sum: 6b2bebd35eb5e1f9f2b745432546570e

Actual downloaded size:
$ ls -l esl-erlang_25.2.3-1~debian~buster_amd64.deb
-rw-rw-r-- 1 nobody nogroup 40679732 Feb 24 10:32 esl-erlang_25.2.3-1~debian~buster_amd64.deb

Actual MD5:
$ md5sum esl-erlang_25.2.3-1~debian~buster_amd64.deb
385d92896ab439765adcac0756a613cf  esl-erlang_25.2.3-1~debian~buster_amd64.deb

I'm getting a similar error:
E: Failed to fetch http://binaries.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-2~ubuntu~focal_amd64.deb  File has unexpected size (40825344 != 40821704). Mirror sync in progress? [IP: <IP_ADDRESS> 80]
   Hashes of expected file:
    - SHA256:bd4d43ba5d129873babb9a2c325c10c0b3831046998f10e81d63b0feefda735d
    - SHA1:38e4f653a0ef0daf0ddad82c84b8973b01b6bf80 [weak]
    - MD5Sum:79db75baab92dfffa5ad84f2a2f7abb4 [weak]
    - Filesize:40821704 [weak]

Not sure of this might be related to https://github.com/esl/packages/issues/63#issuecomment-1443673858.

The issue should be solved, there is a corrupt package which is causing the issue.

Still seeing the same error. Started sync right now:
stretch:
Giving up on https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb...
ERROR: unable to update: download errors:
  https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb: size check mismatch 40343740 != 40345880

buster:
Giving up on https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb...
ERROR: unable to update: download errors:
  https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb: size check mismatch 40679732 != 40676556

Problem seems to be solved for me. Thank you.

The Packages-file contains references to the same file(s) with different metadata:
buster:
$ wget https://packages.erlang-solutions.com/debian/dists/buster/contrib/binary-amd64/Packages.bz2

$ bzgrep -A 2 "esl-erlang_25.2.3-1~debian~buster_amd64.deb" Packages.bz2
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40676556
MD5sum: 6b2bebd35eb5e1f9f2b745432546570e
--
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40676556
MD5sum: 6c8402da931da516e1a619e34a015337
--
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40676556
MD5sum: a93ba470eab19801bd25488381a0eaa4
--
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40679732
MD5sum: 7c8681ce35f2a1909d4b7bfd917ce8f6
--
Filename: pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Size: 40679732
MD5sum: 385d92896ab439765adcac0756a613cf

stretch:
$ wget https://packages.erlang-solutions.com/debian/dists/stretch/contrib/binary-amd64/Packages.bz2

$ bzgrep -A 2 "esl-erlang_25.2.3-2~debian~stretch_amd64.deb" Packages.bz2
Filename: pool/esl-erlang_25.2.3-2~debian~stretch_amd64.deb
Size: 40345814
MD5sum: 0942ac8c8dde09c0f5040f51758da06e
--
Filename: pool/esl-erlang_25.2.3-2~debian~stretch_amd64.deb
Size: 40341912
MD5sum: 3dc7552f2cb690a9cd47fd46a772a24a

$ bzgrep -A 2 "esl-erlang_25.2.3-1~debian~stretch_amd64.deb" Packages.bz2
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40345880
MD5sum: 6f3b174928d4ce718e2290a092e34a72
--
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40345880
MD5sum: 5428786b796558128d254a414ec8d45b
--
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40345880
MD5sum: be6b42ac51d4d5bb1c8bf0cbba36e560
--
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40343740
MD5sum: cca86733342ca0a3235a8c853a69e200
--
Filename: pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb
Size: 40343740
MD5sum: 0bf3973aa825b45133e7054d735918d6

We encounter the same issue here, this is not fixed, please reopen.
2023-03-12 01:47:10 - Running: aptly mirror update erlang-stretch
Downloading http://packages.erlang-solutions.com/debian/dists/stretch/contrib/binary-amd64/Packages.bz2...
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-2_amd64: duplicate in packages index
Building download queue...
Download queue: 1 items (38.48 MiB)
Downloading http://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb...
ERROR: unable to update: download errors:
  http://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~stretch_amd64.deb: size check mismatch 40343740 != 40345880

Same for buster and bullseye

Seems to be fixed for stretch, persists for buster:
$ aptly mirror update buster-erlang
Downloading https://packages.erlang-solutions.com/debian/dists/buster/Release...
Success downloading https://packages.erlang-solutions.com/debian/dists/buster/Release
Downloading & parsing package files...
Downloading https://packages.erlang-solutions.com/debian/dists/buster/contrib/binary-amd64/Packages.bz2...
Success downloading https://packages.erlang-solutions.com/debian/dists/buster/contrib/binary-amd64/Packages.bz2
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
[!] skipping package esl-erlang_1:25.2.3-1_amd64: duplicate in packages index
Building download queue...
Download queue: 1 items (38.79 MiB)
Downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb...
Error downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb: https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb: size check mismatch 40679732 != 40676556 retrying...
Retrying 0 https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb...
Giving up on https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb...
ERROR: unable to update: download errors:
  https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb: size check mismatch 40679732 != 40676556

Seems to be fixed now, thank you!
:~$ aptly mirror update buster-erlang
Downloading https://packages.erlang-solutions.com/debian/dists/buster/Release...
Success downloading https://packages.erlang-solutions.com/debian/dists/buster/Release
Downloading & parsing package files...
Downloading https://packages.erlang-solutions.com/debian/dists/buster/contrib/binary-amd64/Packages.bz2...
Success downloading https://packages.erlang-solutions.com/debian/dists/buster/contrib/binary-amd64/Packages.bz2
Building download queue...
Download queue: 3 items (116.41 MiB)
Downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-3~debian~buster_amd64.deb...
Downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb...
Downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.3-1~debian~buster_amd64.deb...
Success downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.3-1~debian~buster_amd64.deb
Success downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~buster_amd64.deb
Success downloading https://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-3~debian~buster_amd64.deb

Mirror `buster-erlang` has been successfully updated.

Great, sorry for the inconvenience. We re working for a new building package system, it would be online by the end of the month (March)The old one will be available until June after that will be replaced by the new one.

I'm sorry but I'm still getting an error for bullseye:

ERROR: unable to update: download errors:
  http://packages.erlang-solutions.com/debian/pool/esl-erlang_25.2.3-1~debian~bullseye_amd64.deb: size check mismatch 40631804 != 40634644


Correct small typo

Change "executed int the batch mode" to "executed in the batch mode"

@rgwood : Thanks for your contribution! The author(s) have been notified to review your proposed change.


RPC contract bindings generator doesn't handle multiple unnamed structures in a single package

It's caused by the fact that unnamed structures are stored by the compiler using the following notation: unnamed, _unnamed, __unnamed, etc. Binding generator strips all leading underscores to create a valid exported structure identifier, and thus we've got a single Unnamed for a set of all unnamed structures in the resulting RPC binding. It's not hard to fix, but it needs to be done carefully.
Ref. https://github.com/nspcc-dev/neo-go/pull/3087#discussion_r1290494321.

From the first glance, this issue is related only to the auto-guessed binding types. If user specifies proper config and doesn't use "--guess-eventtypes" option, then it should be OK, but I need to double-check it.

This issue causes race in RPC bindings generation test which (sometimes) leads to the following diff appearing after tests:
anna@kiwi:~/Documents/GitProjects/nspcc-dev/neo-go$ git diff cli/smartcontract/testdata/rpcbindings/notifications/rpcbindings_guessed.out
diff --git a/cli/smartcontract/testdata/rpcbindings/notifications/rpcbindings_guessed.out b/cli/smartcontract/testdata/rpcbindings/notifications/rpcbindings_guessed.out
index bf7032c7..3f075d8a 100755
--- a/cli/smartcontract/testdata/rpcbindings/notifications/rpcbindings_guessed.out
+++ b/cli/smartcontract/testdata/rpcbindings/notifications/rpcbindings_guessed.out
@@ -80,7 +80,6 @@ type LedgerWitnessRule struct {
 // Unnamed is a contract-specific unnamed type used by its methods.
 type Unnamed struct {
        I *big.Int
-       B bool
 }

 // ComplicatedNameEvent represents "! complicated name %$#" event emitted by the contract.
@@ -820,7 +819,7 @@ func (res *Unnamed) FromStackItem(item stackitem.Item) error {
        if !ok {
                return errors.New("not an array")
        }
-       if len(arr) != 2 {
+       if len(arr) != 1 {
                return errors.New("wrong number of structure elements")
        }

@@ -834,12 +833,6 @@ func (res *Unnamed) FromStackItem(item stackitem.Item) error {
                return fmt.Errorf("field I: %w", err)
        }

-       index++
-       res.B, err = arr[index].TryBool()
-       if err != nil {
-               return fmt.Errorf("field B: %w", err)
-       }
-
        return nil
 }

The reason is that we handle unnamed extended types information in map, this race will be fixed by proper unnamed params handling.


Changing code to use py-dag as a package instead of the internal file

There's more advanced functionality in the py-dag package (all_downstreams, for example). This way further improvements to py-dag are automatically incorporated as well.
I can help with this too. Just wanted to get your thoughts before starting.

We are requiring py-dag version 1.0.0 currently. I think the library is currently on 2.5.0.
My general philosophy would be not to upgrade unless there is a feature in the newer version we specifically need, did you have a use case in mind?

I was actually referring to your frozen py-dag version (1.0.0) vs a 'dag.py' file within dagobah itself.
I realized quickly after submitting that though that the latest dagobah version does already rely on your py-dag repository (instead of the dag.py file). This isn't the same as the version available via pip install dagobah. Installing from source left #175, but I haven't run into any problems running dagobah and py-dag 1.0.0 functionality is now available.


Refactor hot reload

This PR refactor the way Traefik manages hot-reloads.
As it appears there are issues sometimes with manners, we now simply hot-switch the http.ServeMux of the server. This is way more simpler and safer.
Manners is still used for graceful shutdown of Traefik.
Fixes #236
//cc @gbjk

LGTM 🐰


Make it so only the tiles that move are drawn again

This may be impossible because we keep filling the screen with black to delete previously drawn sprites
An alternative would be only drawing sprites in the screen frame for this we would have to have preset screen sizes for our game

Fixed this by only drawing and updating sprites that are currently in the screen


AlexNet experiments report

I want to post some results I have got using variations of AlexNet architecture and this dataset 20k for training and 5k for testing.
Original run: I get about 93.65% in 30 epochs, as we can see on learning curve network start overfitting.

Just to reproduce original run results as sanity check of the repeatability of the result(I have recreate db from same data): I get about 94.00% in 30 epochs.

Remove mean image subtraction: I get about  88.37% in 30 epochs, but maybe if it train more it will get better accuracy? but anyway convergence is slower.

Use pixel subtraction:  I get about 93.80% in 30 epochs, result is about the same as using mean image subtraction.

Remove LRN(Local Response Normalization) layers: I get about 93.76% in 30 epochs, seems it's safe to remove LRN layers.

Are you reporting a bug? If not, this type of post is a better fit for the user group.


Make a version for Microsoft Edge

Microsoft Edge is the second most used browser on the web, making the browsing experience more flexible, offering many more services for users and optimized for Windows devices.
Now, Microsoft Edge is 99% compatible with Chroimum project and shares same API and most of UX solutions. Apps, websites and extensions running in Microsoft Edge are secured and ready for enterprise insfrastructure, as well as for most users in the world. since compatability for extensions is 100%, Edge can run extensions from other stores for Chromium-based browsers.
But to offer a native solution and benefit from native Edge extensions store, developer can publish the extension to Microsoft Edge Store. It is an easy process that described there. Learn about steps that require publishing an extension and try it out!
Best regards,
Innokenty Ivanov,
PhD student at NEFU | Developer at AEB.
Programmer, web developer, Microsoft Student Partner.
My e-mail.

Hello,
Sorry for the delay I haven't had much time to work on the extension recently. Honestly I'm using chrome and I don't really take time to test features thoroughly on firefox (< 10% of all users), so I'm not really interested in adding a new browser even though it is supposed to be compatible. As an user when I see an extension on a store I assume the developer is testing and maintaining it, which I don't feel like doing right now with Edge.
If you really want to use the extension, as edge is supposed to be compatible, you can download the extension via the Github releases and add it using the equivalent of developer mode on Chrome.

Hi @Kenya-West,
Just to add to what you mentioned about publishing Microsoft Edge extensions, if there are any issues developers face with the submission process or if there is anything unclear about how the publishing process, Microsoft Edge extensions team is available to help!
They can be contacted at links mentioned here - https://docs.microsoft.com/en-us/microsoft-edge/extensions-chromium/publish/contact-extensions-team.
I hope this information helps.
Thank you!


[experimental] Add command line tool for llama_index

Based on discussion #1054, add command line with following features:
# create a local config file in local dir
python -m experimental.cli init

# add file to index
python -m experimental.cli add ../data/

# query
python -m experimental.cli query "Some question?"

The idea is quite straightforward, there're two files put in current directory

config.ini stores embedding/predicter model setup along with its parameters
index.json the index file

There is still a lot of work to be done, such as supporting various embedding models (even a local LLM maybe?), and removing/updating the current index. However, I am considering merging this fundamental part first so that I can tackle the project step by step.
Open to suggestions/changes.

amazing! will take a look soon

i like it - i can envision this being an easy-to-use CLI tool so that you can ask questions over any directory on your file system

Got this error:
Error while finding module specification for 'experimental.cli' (ModuleNotFoundError: No module named 'experimental')

Hi @hophanms, "experimental" is not included in the package yet (I think it's why it called "experimental"). For now, you need to git clone this repo and run these command in it.
Or you can use PYTHONPATH=/path/to/your/llama_index python -m experimental.cli init to run in any directory.
For long term, when this part of code is stable enough, we can move to src. At that time user will be able to call it directly with something like python -m llama_index.cli init
Hope it helps.

I was in the wrong folder when I ran that CLI.
I haven't digged further but tried this
python -m experimental.cli query "Some question?"
And got this:
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
INFO:llama_index.token_counter.token_counter:> [query] Total LLM token usage: 0 tokens
INFO:llama_index.token_counter.token_counter:> [query] Total embedding token usage: 6 tokens
None

There is no further way to debug.

Hi @hophanms , could you provider some more information about your run? There're many reason can cause this output.
Maybe I can describe the work flow clearly (maybe update the doc too, later).
python -m experimental.cli init
this creates a config file "config.ini". If default config is not enough for you, you need to update it manually (for now).
python -m experimental.cli add ../data/
This use OpenAI/Azure OpenAI API to "analysis" files under "../data/" and store it in a file named "index.json" in current directory.
python -m experimental.cli query "Some question?" this checks the local "index.json" and send some more query to OpenAI/Azure OpenAI for the answer to your question.
Because we still call OpenAI API for index and question answering, environments like "OPENAI_API_KEY" still need to be set.
Your output looks ok. There're no error message just no result too. For me, I can repro same result without "add" any file. I don't know if it's your case.

I found out it silently failed on generating the .json so that's why the query returned None
If I fixed the add then it works.


I doubt benchmarks be fair !!!

https://erlangforums.com/t/ring-benchmark-erlang-vs-go/684/12
in erlang community we did some benchkmarks around (raw golang) and ( erlang )
erlang was winner in message passing.
erlang internally used lock-free algorithm for registry and  communication between mailbox.
but golang used mutex for channels !!! and in your framework heavily using mutex for synchronization !!!
how is ergo with overhead of framework can beats erlang ??!!!

how is ergo with overhead of framework can beats erlang ??!!!

in terms of network messaging Erlang has poor performance due to the ETF encoder (lists/maps especially). Beside that,  Ergo ETF has stack-less implementation

I move it to the Discussion. Hope you don't mind.


George/ffs 1601 ma moveit env vars

Ticket
Partially resolves FFS-1601
Adds the required env variables needed for transmitted the encrypted gzipped file to AWS S3

Just checking, did you create the SSM parameters in demo/production yet?

Yup!


Error for EF Core migrations

After installing this plugin, we tried to pass our EF Core custom table database migration in Umbraco web project, and get this error when we try:
Build started...
Build succeeded.
An error occurred while accessing the Microsoft.Extensions.Hosting services. Continuing without the application service provider. Error: Current JobStorage instance has not been initialized yet. You must set it before using Hangfire Client or Server API. For .NET Core applications please call the IServiceCollection.AddHangfire extension method from Hangfire.NetCore or Hangfire.AspNetCore package depending on your application type when configuring the services and ensure service-based APIs are used instead of static ones, like IBackgroundJobClient instead of BackgroundJob and IRecurringJobManager instead of RecurringJob.
Unable to create a 'DbContext' of type 'ApplicationDbContext'. The exception 'Unable to resolve service for type 'Microsoft.EntityFrameworkCore.DbContextOptions`1[Yapanner.Umbraco.Base.Data.ApplicationDbContext]' while attempting to activate 'Yapanner.Umbraco.Base.Data.ApplicationDbContext'.' was thrown while attempting to create an instance. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728
Also, we have umbraco, hangfire and custom tables all in the same database.
Any ideas for solution?

No idea! I would probably just take the code from this package and put it in the site you're working on to see where and when it breaks. As you can see, it's only a few files and it's nice that it works for most people as an actual package, but there's not any magic in it that makes it extra great for Umbraco. The most important part is the AddAuthorizedUmbracoDashboard method that makes sure only people logged into the backoffice can use the dashboard.

Late reply:  I ran into a similar issue, If you are scheduling your jobs using a Composer, you need to ensure it composes after cultiv hangfire see https://docs.umbraco.com/umbraco-cms/implementation/composing
ie
[ComposeAfter(typeof(Cultiv.Hangfire.HangfireComposer))]


[docs] Update the link from https://github.com/apple/ to https://github.com/swiftlang/

PR Summary:
PR simply fixes the link from:

"https://github.com/apple/swift/tree/main/docs/HowToGuides/FAQ.md" => "https://github.com/swiftlang/swift/tree/main/docs/HowToGuides/FAQ.md

@swift-ci please smoke test

@lamtrinhdev Could you compose all of your updates to links in the docs directory in a single PR instead of creating separate PRs per file? Merging this as a single commit is a lot cleaner.

Dear @AnthonyLatsis ,
Sure. Let me update all of them in the docs folder.
Thanks,
Lam

Dear @AnthonyLatsis ,
Thank you for the suggestion. I just updated all the links from https://github.com/apple/swift to https://github.com/swiftlang/swift Please help me to review it.
Thanks,
Lam

AFAICS LGTM, but we need to squash when merging this, or you should squash yourself.

@swift-ci please smoke test

Thank you for your feedback @ktoso .

Dear @AnthonyLatsis ,
I just completed all my update. If you have time. Please support me to review the PR.
Thanks,
Lam

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test

FWIW, this will not work. You need permissions.

@swift-ci please smoke test

Thank you for helping with the migration, Lam.


Use Resin CI scripts to build Etcher

Change-type: patch

Depends on https://github.com/resin-io/scripts/pull/6


WIP: pluggable-ovn

@sridhargaddam added this, but it's super draft. I'll continue working on it on monday.

@nyechiel @tpantelis @sridhargaddam  ^ :)

Opps I'll fix the last commit


net/wireguard: 'vpn' configure plugin hook missing

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[ x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[ x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
Since 23.7 opnsense randomly fails to init wireguard interfaces at boot if DNS lookup fails.
I used a host name as Endpoint Address which needs a DNS lookup. It seems that the
PPPoE session hasn't started yet, thus DNS query fails, causing the whole wireguard interfaces the Endpoint is attached to being unavailable.
Expected behavior
wireguard interface is brought up even if DNS is used as endpoint address
Describe alternatives you considered
Switching to static IP adress solves the issue for me.
Relevant log files
See attachement
fail.log

Wasn't the dnsreresolve action not intended for these kind of issues?
https://github.com/opnsense/plugins/blob/dc06d5837f38e80308ec1abb5bceb65422504020/net/wireguard/src/opnsense/service/conf/actions.d/actions_wireguard.conf#L25-L30
ref: https://github.com/WireGuard/wireguard-tools/tree/master/contrib/reresolve-dns

I think this was meant for cron job use to unbreak.
what I mean is adding the vpn hook like OpenVPN and IPsec do on core which is called by newwanip which is called by PPPoE eventually.

To clarify this is pre os-wireguard 2.0. The problem always existed. Flaky DNS during boot is a main driver for this issue. Most people don't even realise that until it happens.

@AdSchellevis looks like you are right... does this work for you then? https://github.com/opnsense/plugins/commit/d6df03a56

Same problem with wireguard tunnel, here.
Cron job "Renew DNS for WireGuard on stale connection" does not resolve the issue for me!
/usr/local/opnsense/scripts/Wireguard/wg-service-control.php: The command '/usr/bin/wg setconf 'wg1' '/usr/local/etc/wireguard/wg1.conf'' returned exit code '1', the output was 'Name does not resolve: dyndnsexample.com:51993' Configuration parsing error'`

„Name does not resolve“ is a pretty basic support issue, not a technical problem.

Sorry for opening this up, again. Problem persists with OPNsense 23.7.4
I know that "Name does not resolve" is a basic error, but the endpoint domain name is correct and CAN be resolved. The problem with this is, that the DNS does not resolve upon opnsense startup, but does resolve later on.

Opnsense boots
During wireguard startup, DNS resolve for the endpoint fails. Wireguard does not load configuration at all. (with failure above)
The "/usr/local/opnsense/scripts/Wireguard/reresolve-dns.py" (wireguard renew) action does not fix the issue, since it only sets peer and endpoint, but not pre-shared key, allowed ips etc. -> Wireguard handshake keeps failing

Manual intervention is needed: restarting wireguard service via gui -> DNS now resolves -> tunnel is successfully established.

I’m not sure it makes too much sense. It might not be a wireguard issue. It’s trying to restart all the time on dynamic changes. Maybe the root issue is the WAN configuration and DNS setup.

From my point of view, wireguard is started too early upon opnsense bootup.
From the attached excepts of various log files you can see, the following sequence of events:

LAN interface (igc0) is up
Wireguard instance wg1 is started and fails due to DNS problem (WAN is not up, yet!)
WAN interface (igc3) is up
"Renew DNS for Wireguard" is called, at that time, wg1 config is not loaded, command does not establish tunnel

It seems that the statup sequence does not account for the possibility, WAN is not attached to the first available interface. (It will probably also not account for temporary DNS server failures)
Best regards, Walter
2023-09-16T15:20:38	Notice	configd.py	[2fd65f11-34be-4916-a523-2ccfceedbd30] Linkup starting igc0 2023-09-16T15:20:38	Notice	configd.py	[07508d5e-ecbf-4daa-8063-e48ef44be722] configure wireguard instances 2023-09-16T15:20:41	Notice	wireguard	Wireguard interface WKhomeWireguard (wg1) started 2023-09-16T15:20:41	Error	wireguard	/usr/local/opnsense/scripts/Wireguard/wg-service-control.php: The command '/usr/bin/wg setconf 'wg1' '/usr/local/etc/wireguard/wg1.conf'' returned exit code '1', the output was 'Name does not resolve: xxxx.mooo.com:51234' Configuration parsing error'
2023-09-16T15:20:46	Notice	configd.py	[3e84c15b-ae35-487c-9e00-88baaef5b98e] Linkup starting igc3
2023-09-16T15:20:44	Notice	configd.py	[ebca1ea6-4ce8-4154-a9ee-72e416e8c7ba] Renew DNS for WireGuard`

Linkup starting igc3 is suspicious. The only reason for this is probably netmap being used. I’d rather like to see the system log.

System log pulled from /var/logs: see syslog.log
General log copied from GUI: see general.log
Thank you for your efforts!
general.log
syslog.log

It’s trying to restart all the time on dynamic changes.

It is probably not necessary to review the logs (see above). You're assuming that your plugin hook restarts wireguard on any type of change, but it doesn't.  If the config is not loaded during initial wg startup, the "wireguard renew" action fails.
Here is what happens from wireguard side of view:
This is what "wg show all" displays after initial startup with failed DNS request. Interface seems to exist, but with no configuration at all.
interface: wg1   listening port: 25027
This is what happens after your "renew" (what you consider a restart) action (/usr/bin/wg set wg1 peer XXXX endpoint xxx.mooo.com:12345) with successful DNS resolution. Please note: Allowed ips and preshared key are empty/missing.
`interface: wg1
listening port: 25027
peer: XXXX
endpoint: 1xx.1xx.2xx.2:12345
allowed ips: (none)`
This is what a successfully established tunnel looks like:
`interface: wg1
public key: XXX
private key: (hidden)
listening port: 3826
peer: XXX
preshared key: (hidden)
endpoint: 1xx.1xx.2xx.2:12345
allowed ips: <IP_ADDRESS>/24, <IP_ADDRESS>/15, <IP_ADDRESS>/28, <IP_ADDRESS>/15, <IP_ADDRESS>/24, <IP_ADDRESS>/24, <IP_ADDRESS>/32, <IP_ADDRESS>/24
latest handshake: 19 seconds ago
transfer: 527.65 KiB received, 614.14 KiB sent`
Reassigning the config file in reresolve-dns.py (wireguard renew) seems necessary ("wg setconf wg1 /usr/local/etc/wireguard/wg1.conf").
Another (in my oppinion rather bad fix) would be: start wg with dummy static endpoint ip (so that it loads config), then assign correct endpoint IP oder DNS name later (using your renew action).

The reresolve dns script is only intended to resolve an address again as per upstream example.
We might consider calling configure on interface event, but it likely needs some additional checks in the existing script (maybe required for future CARP changes anyway)
The root cause however might be something different as DNS should be available at that point in time and the link event looks rather suspicious (in which case forcing a resolve for a functional tunnel should be all it needs)


Set up Scalafmt correctly

This sets up Scalafmt correctly — it wasn't previously worked, however, it was intended to be set up according to the existing in repo .scalafmt.conf. Also, the GA workflows have been enhanced and now include checking formatting.

as a side remark, not a blocker for this, PR, I'm a bit surprised to see this coming in:
uses: olafurpg/setup-scala@v14

setup-scala is obsolete and unneeded, as per discussion on https://github.com/olafurpg/setup-scala/issues/49
is that coming from sbt-github-actions, or what?

@SethTisue good call. It wasn't introduced from the blank but preserved for, perhaps, no reason. Let me explore whether we can give up on it.


bot is offline

There is any news about this Issue? It's off for me too and the /profile user command isn´t responding (the language is in PT)

Due to a recent issue at the location of my servers all services are offline I will be spending the next coming days bringing them all online.

Due to a recent issue at the location of my servers all services are offline I will be spending the next coming days bringing them all online.

Okay @LachlanDev ! If there's anything we can do to help. Don't mind to ask!

I should have the bot online in 10-15 mins just got some new equipment today :) thanks for the support

Update: Gonna be a little longer than I anticipated have to reset up everthing. Sorry for the misunderstanding!

 Sorry for the misunderstanding!

No problem!

Looks to be dead. Please remove from the Discord directory if this is no longer going to be maintained. Stale/abandoned resources are the worst kind to see at the top of a list when searching and such.

yes this is anoying. thought I found the app someone used, but apparently it was not this dead app.

I might take this up and get it running again. Would anyone want to use it? Or is it a waste of my time?
I have servers to run it on already...


Devices not being reported in scan callback but added to scan results list

I created a custom scan callback and if the device name does not match the one from the device type that i want to connect, I erase it from scanned devices list, during the onResult callback.
But I noticied that some devices were being added to the list even though they shouldn't be there.
After investigating I found that the callback is not called during this section of code in file NimBLEScan.cpp:
            if (pScan->m_pAdvertisedDeviceCallbacks) {
                // If not active scanning or scan response is not available
                // report the result to the callback now.
                if(pScan->m_scan_params.passive ||
                  (advertisedDevice->getAdvType() != BLE_HCI_ADV_TYPE_ADV_IND &&
                   advertisedDevice->getAdvType() != BLE_HCI_ADV_TYPE_ADV_SCAN_IND))
                {
                	NIMBLE_LOGI(LOG_TAG, "Passive result!");
                    advertisedDevice->m_callbackSent = true;
                    pScan->m_pAdvertisedDeviceCallbacks->onResult(advertisedDevice);

                // Otherwise, wait for the scan response so we can report the complete data.
                } else if (event->disc.event_type == BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP) {
                	NIMBLE_LOGI(LOG_TAG, "Wait for scan response result!");
                    advertisedDevice->m_callbackSent = true;
                    pScan->m_pAdvertisedDeviceCallbacks->onResult(advertisedDevice);
                }
# IF TESTS ABOVE FAIL AND NOT WAITING FOR RESPONSE -> onResult is never called
                else{
/* !Prevents onResult from running! PS: This can be called while waiting for scan response */
                	NIMBLE_LOGI(LOG_TAG, "Won't report callback, event if device was added to list!");
                	NIMBLE_LOGI(LOG_TAG, "getAdversitingType() = %d", advertisedDevice->getAdvType());
                	NIMBLE_LOGI(LOG_TAG, "event->disc.event_type = %d", event->disc.event_type);
                }
                // If not storing results and we have invoked the callback, delete the device.
                if(pScan->m_maxResults == 0 && advertisedDevice->m_callbackSent) {
                    pScan->erase(advertisedAddress);
                }
            }
            else{
            	 NIMBLE_LOGI(LOG_TAG, "No custom callback defined!");
            }

The custom onResult is not called when:
advertisedDevice->getAdvType() and event->disc.event_type values  do not satisfy the inner if->else if block as commented in the code.
I don't know if this a bug, or it's the way it supposed to work. But still this is preventing some scan results to be reported in the callback, which is not great.
The logs are included below.
Thank you, I really appreciate NimBLE! :)

Logs:
D NimBLEScan: ">> start(duration=30)"
D NimBLEScan: "<< start()"
I NimBLEScan: "New advertiser: 21:04:e1:fb:85:23"
I NimBLEScan: "Passive result!"
[Info] Advertised device found!
[Info] Device address: 21:04:e1:fb:85:23
D NimBLEScan: "erase device: 21:04:e1:fb:85:23"
I NimBLEScan: "New advertiser: 10:98:c3:cf:4a:fb"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 0"
I NimBLEScan: "event->disc.event_type = 0"
I NimBLEScan: "New advertiser: a4:c1:38:9b:24:8e"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 0"
I NimBLEScan: "event->disc.event_type = 0"
I NimBLEScan: "Updated advertiser: a4:c1:38:9b:24:8e"
I NimBLEScan: "Wait for scan response result!"
[Info] Advertised device found!
[Info] Device name: LYWSD03MMC
[Info] Device address: a4:c1:38:9b:24:8e
[Info] Found a M3 thermometer!
[Info] Found devices: 1
I NimBLEScan: "New advertiser: 7c:88:72:44:a8:59"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 2"
I NimBLEScan: "event->disc.event_type = 2"
I NimBLEScan: "New advertiser: 34:f1:50:a2:6f:bd"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 0"
I NimBLEScan: "event->disc.event_type = 0"
I NimBLEScan: "Updated advertiser: 34:f1:50:a2:6f:bd"
I NimBLEScan: "Wait for scan response result!"
[Info] Advertised device found!
[Info] Device address: 34:f1:50:a2:6f:bd
D NimBLEScan: "erase device: 34:f1:50:a2:6f:bd"
I NimBLEScan: "Updated advertiser: 10:98:c3:cf:4a:fb"
I NimBLEScan: "Wait for scan response result!"
[Info] Advertised device found!
[Info] Device name: EssenzaTwo_1098C3CF4AFB
[Info] Device address: 10:98:c3:cf:4a:fb
[Info] Found a M3 thermometer!
[Info] Found devices: 2
[Info] (No whitelist) Maximum number of devices found!
D NimBLEScan: ">> stop()"
D NimBLEScan: "<< stop()"
[Info] Scan finished!
[Info] Devices found in scan:
[Info] 10:98:c3:cf:4a:fb
[Info] a4:c1:38:9b:24:8e
[Info] 7c:88:72:44:a8:59

Unfortunately did not work.
What changed:
Some devices are no longer reporting name in the response anymore.
Were reporting before with active scan enabled. (Probably the library is no longer waiting for scan response, due to removing BLE_HCI_ADV_TYPE_ADV_IND).
Some devices still are not triggering the callback. Adversiting type and event do not meet conditions to call onResult.
Log:
´´´
I NimBLEScan: "New advertiser: 67:03:31:d5:22:94"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 2" # Equals to BLE_HCI_ADV_TYPE_ADV_SCAN_IND
I NimBLEScan: "event->disc.event_type = 2" #Different from BLE_HCI_ADV_RPT_EVTYPE_SCAN_RSP
``

Thanks for testing, I'll look into this more when I get home tonight.

I think the explanation for the device you see in the logs not calling the callback is that it is not sending a scan response.
I NimBLEScan: "New advertiser: 7c:88:72:44:a8:59"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 2"
I NimBLEScan: "event->disc.event_type = 2"

Here it is advertising the type BLE_HCI_ADV_TYPE_ADV_SCAN_IND (Scannable Undirected advertising).
I NimBLEScan: "New advertiser: 34:f1:50:a2:6f:bd"
I NimBLEScan: "Won't report callback, event if device was added to list!"
I NimBLEScan: "getAdversitingType() = 0"
I NimBLEScan: "event->disc.event_type = 0"
I NimBLEScan: "Updated advertiser: 34:f1:50:a2:6f:bd"
I NimBLEScan: "Wait for scan response result!"
[Info] Advertised device found!
[Info] Device address: 34:f1:50:a2:6f:bd

Here we can see that the scan response either did not arrive or was missed for some other reason. So it is advertising itself as having a scan response and therefore we do not invoke the callback until we get the response so the data will be complete for the application. If the data does not get received before the scan ends it will be in the list still as we are waiting for the data.

Thanks for investigating the issue.
I implemented some extra filtering after the scan completes.
Since the device never sends the scan response, its name is always empty, so it's easy to filter this results.


Refactoring of OurobrosApplication type

Instead of using ConnectionId addr -> OuorborosApplication ... it redefines the OuroborosApplication:
newtype OuroborosApplication (appType :: AppType) addr bytes m a b =
      OuroborosApplication (ConnectionId addr -> [MiniProtocol appType bytes m a b])

At a later stage we will hide one more argument inside OuroborosApplicatoin
newtype wrapper:  the signal STM transaction to gracefully terminate client
protocols.
This PR requies #2090 to be merged first (it targets #2090 branch at the moment, just to show adequate diff).

Updated ouroboros-consensus
Updated demo-chain-sync
Updated ouroboros-network (lib & tests)
Updated demo-ping-pong
OuroborosApplicaiton

Prematurely closed by bors, :( it seems I need to open another PR.


Add support for specified directory

Added cli argument --path or -p where you specify the path of the directory where you want dotenv-linter to run.
If there is no argument -p, the program use the current directory.

@Louis-Lesage 👋 Thanks a lot! You're awesome! ❤


Setup granular PDT for kernel

This PR uses the kernel ELF section information provided by the multiboot package to set up a granular page directory table (PDT) and switches to it (https://github.com/achilleasa/gopher-os/commit/6195f3fc3b2a7ea8fe60ff55ed2355a9da59bdb2). Up to the point where the kernel switches to the new PDT, it uses a simpler PDT that contains the following identity mappings (defined as 2MB pages):

physical address  range
virtual address range

0 to 8M
0 to 8 M

0 to 8M
PAGE_OFFSET to PAGE_OFFSET + 8M

Where PAGE_OFFSET is the start of the kernel virtual address space defined by arch/XXX/asm/constants.inc. For 64-bit kernels this is set to the 48-bit canonical memory address 0xffff800000000000. The linker script sets the physical load address for the kernel to 1M and configures the kernel virtual start address to PAGE_OFFSET + 1M.
The new PDT uses page granularity (4K) and also uses the appropriate flags (e.g NX, RW) depending on the ELF section contents. For example:

.text gets mapped read-only
.data gets mapped RW and the no-execute (NX) bit is set
.rodata uses just the NX bit

Setting up the new PDT must happen when the vmm system initializes and before the Go memory allocator is initialized. This ensures that in addition to the ELF section contents we can properly account for any additional pages mapped by the bitmap memory allocator. If we were to establish the new PDT after bootstrapping the Go allocator we would have to scan through ~500GB of virtual address space to locate the pages that were mapped by it (through calls to runtime.sysMap).
One caveat to performing the PDT initialization before initializing the Go allocator is that the code in the multiboot package that returns the ELF sections must be refactored so at it doesn't perform any allocations. This is achieved by converting the existing GetElfSections implementation into a visitor-based implementation (https://github.com/achilleasa/gopher-os/commit/a2d58f894944b40c8448c6c591aa20196c1bd025)

Codecov Report

Merging #43 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master    #43   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          23     23
  Lines        1106   1141   +35
=====================================
+ Hits         1106   1141   +35

Impacted Files
Coverage Δ

src/gopheros/kernel/hal/multiboot/multiboot.go
100% <100%> (ø)
:arrow_up:

src/gopheros/kernel/goruntime/bootstrap.go
100% <100%> (ø)
:arrow_up:

src/gopheros/kernel/mem/vmm/vmm.go
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


[BUG] errors when item is picked up

Specify your operating system, minecraft server core and minecraft version
Paper 1.20.4
Enter your config

Describe the bug
console is spammed with errors.

Can you send me your backuper confg please? (plugins/Backuper/config.yml)

https://pastebin.com/zJKVBPqs
i haven't changed anything

Ok, thanks

Does this happen every time you pick up an item or only sometimes?

Is the problem fixed by restarting the server?

seems like every time an item is picked up. there are currently a couple people on the server. I will test restarting in a couple minutes.

no more errors after restart. anything in specific i should test?

Last time the errors started appearing after the server start or after some specific moment? Was it the first time the plugin was enabled? Try making a backup and check if there are some errors

first time installing the plugin. /backup works now with no issues. on server start

So there are no issues when you trying to pick up an item after backup?

not anymore. for now at least. also thank you for the fast response!

is it possible to have a server announcement before/during/after backup?

Please, open a new Feature request issue

I found what the problem was, thanks for the feedback, you can always open a new issue if you have any problem or idea


Security vulnerability with strip-ansi dependency

Currently<EMAIL_ADDRESS>has a dependency on a vulnerable version of ansi-regex.  The vulnerability is only fixed in ansi-regex >6.0.0, https://github.com/chalk/ansi-regex/releases/tag/v6.0.1
Additionally string-width depends on a version of strip-ansi that is vulnerable.
Vulnerability link - https://snyk.io/vuln/npm:ansi-regex

Updated dependencies and released as v4.0.0.

Thank you!


Support for ExtJS 6.5

At least so that Sencha Architect accepts it as it seems to be working fine.
Thanks!

What is the problem? Architect is not accepting this component to be used with ExtJS 6.5 projects?

On import it only lists versions up to 6.2.

I will take a look at it, thanks for reporting it.

What version of Architect are you using?

Thanks!
The latest, 4.2.something.

Fixed by https://github.com/gportela85/DateTimeField/commit/4ca30421a6a47fea9b54ab27be0c93c42632cc6a

Thanks!


LHN - Green dots are displayed after refreshing the page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to URL https://staging.new.expensify.com/
Open expensifail account<EMAIL_ADDRESS>Click on each conversation with a green dot to open them all.
Refresh the page.

Expected Result:
The green dots should not be displayed after refreshing the page,
Actual Result:
Green dots are displayed after refreshing the page.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/93b7b514-81ba-4257-bc00-bb294edb2cf2
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

@mountiny @luacmartins this is down to the PRs for moving iou actions to the iou/expense reports not being completed yet, right?
I think we can close this, as it's a consequence of being mid-implementation. Let me know if you agree!

Yea, we can close this.


Reorder change history and add new tested Matlab version as suggested…

… in comment on previous pull request (see here).

:+1:


Pod Security Policies

https://kubernetes.io/docs/concepts/policy/pod-security-policy/
I run through the example and found it can create the pause pod before creating the role of psp:unprivileged and rolebinding, no security error report.
And after creating psp:unprivileged role and rolebinding, there is no error to create privileged pod use kubectl-user.

sorry, I found I missed to setup api-server. It works after that.


[BK7231N] [CBU] [DUMP] Tuya Generic Single Phase Din Rail Wifi Intelligent Energy monitoring switch ZMAi-90

ZMAi-90-Slow-readResult_BK7231N_QIO_2023-21-4--04-02-38.zip

The attached dump is mostly (but not completely) null bytes and is therefor invalid.

What could be the reason for that? here is a flash read log I got success message for flash read and CRC check:
Getting bus success!
Going to set baud rate setting (115200)!
Will try to read device flash MID (for unprotect N):
Flash MID loaded: 1560EB
Will now search for Flash def in out database...
Flash def found! For: 1560EB
Flash information: mid: 1560EB, icName: TH25Q_16HB, manufacturer: TH, szMem: 1000000, szSR: 2, cwUnp: 0, cwEnp: 7, cwMsk: 407C, sb: 2, lb: 5, cwdRd: 05-35-FF-FF, cwdWr: 01-FF-FF-FF
Entering SetProtectState(True)...
sr: 0
sr: 0
final sr: 0
msk: 407c
cw: 0, sb: 2, lb: 5
bfd: 0
SetProtectState(True) success!
Going to start reading at offset 0x00...
Reading 0x00... Ok! Reading 0x1000... Ok! Reading 0x2000... Ok! Reading 0x3000... Ok! Reading 0x4000... Ok! Reading 0x5000... Ok! Reading 0x6000... Ok! Reading 0x7000... Ok! Reading 0x8000... Ok! Reading 0x9000... Ok! Reading 0xA000... Ok! Reading 0xB000... Ok! Reading 0xC000... Ok! Reading 0xD000... Ok! Reading 0xE000... Ok! Reading 0xF000... Ok! Reading 0x10000... Ok! Reading 0x11000... Ok! Reading 0x12000... Ok! Reading 0x13000... Ok! Reading 0x14000... Ok! Reading 0x15000... Ok! Reading 0x16000... Ok! Reading 0x17000... Ok! Reading 0x18000... Ok! Reading 0x19000... Ok! Reading 0x1A000... Ok! Reading 0x1B000... Ok! Reading 0x1C000... Ok! Reading 0x1D000... Ok! Reading 0x1E000... Ok! Reading 0x1F000... Ok! Reading 0x20000... Ok! Reading 0x21000... Ok! Reading 0x22000... Ok! Reading 0x23000... Ok! Reading 0x24000... Ok! Reading 0x25000... Ok! Reading 0x26000... Ok! Reading 0x27000... Ok! Reading 0x28000... Ok! Reading 0x29000... Ok! Reading 0x2A000... Ok! Reading 0x2B000... Ok! Reading 0x2C000... Ok! Reading 0x2D000... Ok! Reading 0x2E000... Ok! Reading 0x2F000... Ok! Reading 0x30000... Ok! Reading 0x31000... Ok! Reading 0x32000... Ok! Reading 0x33000... Ok! Reading 0x34000... Ok! Reading 0x35000... Ok! Reading 0x36000... Ok! Reading 0x37000... Ok! Reading 0x38000... Ok! Reading 0x39000... Ok! Reading 0x3A000... Ok! Reading 0x3B000... Ok! Reading 0x3C000... Ok! Reading 0x3D000... Ok! Reading 0x3E000... Ok! Reading 0x3F000... Ok! Reading 0x40000... Ok! Reading 0x41000... Ok! Reading 0x42000... Ok! Reading 0x43000... Ok! Reading 0x44000... Ok! Reading 0x45000... Ok! Reading 0x46000... Ok! Reading 0x47000... Ok! Reading 0x48000... Ok! Reading 0x49000... Ok! Reading 0x4A000... Ok! Reading 0x4B000... Ok! Reading 0x4C000... Ok! Reading 0x4D000... Ok! Reading 0x4E000... Ok! Reading 0x4F000... Ok! Reading 0x50000... Ok! Reading 0x51000... Ok! Reading 0x52000... Ok! Reading 0x53000... Ok! Reading 0x54000... Ok! Reading 0x55000... Ok! Reading 0x56000... Ok! Reading 0x57000... Ok! Reading 0x58000... Ok! Reading 0x59000... Ok! Reading 0x5A000... Ok! Reading 0x5B000... Ok! Reading 0x5C000... Ok! Reading 0x5D000... Ok! Reading 0x5E000... Ok! Reading 0x5F000... Ok! Reading 0x60000... Ok! Reading 0x61000... Ok! Reading 0x62000... Ok! Reading 0x63000... Ok! Reading 0x64000... Ok! Reading 0x65000... Ok! Reading 0x66000... Ok! Reading 0x67000... Ok! Reading 0x68000... Ok! Reading 0x69000... Ok! Reading 0x6A000... Ok! Reading 0x6B000... Ok! Reading 0x6C000... Ok! Reading 0x6D000... Ok! Reading 0x6E000... Ok! Reading 0x6F000... Ok! Reading 0x70000... Ok! Reading 0x71000... Ok! Reading 0x72000... Ok! Reading 0x73000... Ok! Reading 0x74000... Ok! Reading 0x75000... Ok! Reading 0x76000... Ok! Reading 0x77000... Ok! Reading 0x78000... Ok! Reading 0x79000... Ok! Reading 0x7A000... Ok! Reading 0x7B000... Ok! Reading 0x7C000... Ok! Reading 0x7D000... Ok! Reading 0x7E000... Ok! Reading 0x7F000... Ok! Reading 0x80000... Ok! Reading 0x81000... Ok! Reading 0x82000... Ok! Reading 0x83000... Ok! Reading 0x84000... Ok! Reading 0x85000... Ok! Reading 0x86000... Ok! Reading 0x87000... Ok! Reading 0x88000... Ok! Reading 0x89000... Ok! Reading 0x8A000... Ok! Reading 0x8B000... Ok! Reading 0x8C000... Ok! Reading 0x8D000... Ok! Reading 0x8E000... Ok! Reading 0x8F000... Ok! Reading 0x90000... Ok! Reading 0x91000... Ok! Reading 0x92000... Ok! Reading 0x93000... Ok! Reading 0x94000... Ok! Reading 0x95000... Ok! Reading 0x96000... Ok! Reading 0x97000... Ok! Reading 0x98000... Ok! Reading 0x99000... Ok! Reading 0x9A000... Ok! Reading 0x9B000... Ok! Reading 0x9C000... Ok! Reading 0x9D000... Ok! Reading 0x9E000... Ok! Reading 0x9F000... Ok! Reading 0xA0000... Ok! Reading 0xA1000... Ok! Reading 0xA2000... Ok! Reading 0xA3000... Ok! Reading 0xA4000... Ok! Reading 0xA5000... Ok! Reading 0xA6000... Ok! Reading 0xA7000... Ok! Reading 0xA8000... Ok! Reading 0xA9000... Ok! Reading 0xAA000... Ok! Reading 0xAB000... Ok! Reading 0xAC000... Ok! Reading 0xAD000... Ok! Reading 0xAE000... Ok! Reading 0xAF000... Ok! Reading 0xB0000... Ok! Reading 0xB1000... Ok! Reading 0xB2000... Ok! Reading 0xB3000... Ok! Reading 0xB4000... Ok! Reading 0xB5000... Ok! Reading 0xB6000... Ok! Reading 0xB7000... Ok! Reading 0xB8000... Ok! Reading 0xB9000... Ok! Reading 0xBA000... Ok! Reading 0xBB000... Ok! Reading 0xBC000... Ok! Reading 0xBD000... Ok! Reading 0xBE000... Ok! Reading 0xBF000... Ok! Reading 0xC0000... Ok! Reading 0xC1000... Ok! Reading 0xC2000... Ok! Reading 0xC3000... Ok! Reading 0xC4000... Ok! Reading 0xC5000... Ok! Reading 0xC6000... Ok! Reading 0xC7000... Ok! Reading 0xC8000... Ok! Reading 0xC9000... Ok! Reading 0xCA000... Ok! Reading 0xCB000... Ok! Reading 0xCC000... Ok! Reading 0xCD000... Ok! Reading 0xCE000... Ok! Reading 0xCF000... Ok! Reading 0xD0000... Ok! Reading 0xD1000... Ok! Reading 0xD2000... Ok! Reading 0xD3000... Ok! Reading 0xD4000... Ok! Reading 0xD5000... Ok! Reading 0xD6000... Ok! Reading 0xD7000... Ok! Reading 0xD8000... Ok! Reading 0xD9000... Ok! Reading 0xDA000... Ok! Reading 0xDB000... Ok! Reading 0xDC000... Ok! Reading 0xDD000... Ok! Reading 0xDE000... Ok! Reading 0xDF000... Ok! Reading 0xE0000... Ok! Reading 0xE1000... Ok! Reading 0xE2000... Ok! Reading 0xE3000... Ok! Reading 0xE4000... Ok! Reading 0xE5000... Ok! Reading 0xE6000... Ok! Reading 0xE7000... Ok! Reading 0xE8000... Ok! Reading 0xE9000... Ok! Reading 0xEA000... Ok! Reading 0xEB000... Ok! Reading 0xEC000... Ok! Reading 0xED000... Ok! Reading 0xEE000... Ok! Reading 0xEF000... Ok! Reading 0xF0000... Ok! Reading 0xF1000... Ok! Reading 0xF2000... Ok! Reading 0xF3000... Ok! Reading 0xF4000... Ok! Reading 0xF5000... Ok! Reading 0xF6000... Ok! Reading 0xF7000... Ok! Reading 0xF8000... Ok! Reading 0xF9000... Ok! Reading 0xFA000... Ok! Reading 0xFB000... Ok! Reading 0xFC000... Ok! Reading 0xFD000... Ok! Reading 0xFE000... Ok! Reading 0xFF000... Ok! Reading 0x100000... Ok! Reading 0x101000... Ok! Reading 0x102000... Ok! Reading 0x103000... Ok! Reading 0x104000... Ok! Reading 0x105000... Ok! Reading 0x106000... Ok! Reading 0x107000... Ok! Reading 0x108000... Ok! Reading 0x109000... Ok! Reading 0x10A000... Ok! Reading 0x10B000... Ok! Reading 0x10C000... Ok! Reading 0x10D000... Ok! Reading 0x10E000... Ok! Reading 0x10F000... Ok! Reading 0x110000... Ok! Reading 0x111000... Ok! Reading 0x112000... Ok! Reading 0x113000... Ok! Reading 0x114000... Ok! Reading 0x115000... Ok! Reading 0x116000... Ok! Reading 0x117000... Ok! Reading 0x118000... Ok! Reading 0x119000... Ok! Reading 0x11A000... Ok! Reading 0x11B000... Ok! Reading 0x11C000... Ok! Reading 0x11D000... Ok! Reading 0x11E000... Ok! Reading 0x11F000... Ok! Reading 0x120000... Ok! Reading 0x121000... Ok! Reading 0x122000... Ok! Reading 0x123000... Ok! Reading 0x124000... Ok! Reading 0x125000... Ok! Reading 0x126000... Ok! Reading 0x127000... Ok! Reading 0x128000... Ok! Reading 0x129000... Ok! Reading 0x12A000... Ok! Reading 0x12B000... Ok! Reading 0x12C000... Ok! Reading 0x12D000... Ok! Reading 0x12E000... Ok! Reading 0x12F000... Ok! Reading 0x130000... Ok! Reading 0x131000... Ok! Reading 0x132000... Ok! Reading 0x133000... Ok! Reading 0x134000... Ok! Reading 0x135000... Ok! Reading 0x136000... Ok! Reading 0x137000... Ok! Reading 0x138000... Ok! Reading 0x139000... Ok! Reading 0x13A000... Ok! Reading 0x13B000... Ok! Reading 0x13C000... Ok! Reading 0x13D000... Ok! Reading 0x13E000... Ok! Reading 0x13F000... Ok! Reading 0x140000... Ok! Reading 0x141000... Ok! Reading 0x142000... Ok! Reading 0x143000... Ok! Reading 0x144000... Ok! Reading 0x145000... Ok! Reading 0x146000... Ok! Reading 0x147000... Ok! Reading 0x148000... Ok! Reading 0x149000... Ok! Reading 0x14A000... Ok! Reading 0x14B000... Ok! Reading 0x14C000... Ok! Reading 0x14D000... Ok! Reading 0x14E000... Ok! Reading 0x14F000... Ok! Reading 0x150000... Ok! Reading 0x151000... Ok! Reading 0x152000... Ok! Reading 0x153000... Ok! Reading 0x154000... Ok! Reading 0x155000... Ok! Reading 0x156000... Ok! Reading 0x157000... Ok! Reading 0x158000... Ok! Reading 0x159000... Ok! Reading 0x15A000... Ok! Reading 0x15B000... Ok! Reading 0x15C000... Ok! Reading 0x15D000... Ok! Reading 0x15E000... Ok! Reading 0x15F000... Ok! Reading 0x160000... Ok! Reading 0x161000... Ok! Reading 0x162000... Ok! Reading 0x163000... Ok! Reading 0x164000... Ok! Reading 0x165000... Ok! Reading 0x166000... Ok! Reading 0x167000... Ok! Reading 0x168000... Ok! Reading 0x169000... Ok! Reading 0x16A000... Ok! Reading 0x16B000... Ok! Reading 0x16C000... Ok! Reading 0x16D000... Ok! Reading 0x16E000... Ok! Reading 0x16F000... Ok! Reading 0x170000... Ok! Reading 0x171000... Ok! Reading 0x172000... Ok! Reading 0x173000... Ok! Reading 0x174000... Ok! Reading 0x175000... Ok! Reading 0x176000... Ok! Reading 0x177000... Ok! Reading 0x178000... Ok! Reading 0x179000... Ok! Reading 0x17A000... Ok! Reading 0x17B000... Ok! Reading 0x17C000... Ok! Reading 0x17D000... Ok! Reading 0x17E000... Ok! Reading 0x17F000... Ok! Reading 0x180000... Ok! Reading 0x181000... Ok! Reading 0x182000... Ok! Reading 0x183000... Ok! Reading 0x184000... Ok! Reading 0x185000... Ok! Reading 0x186000... Ok! Reading 0x187000... Ok! Reading 0x188000... Ok! Reading 0x189000... Ok! Reading 0x18A000... Ok! Reading 0x18B000... Ok! Reading 0x18C000... Ok! Reading 0x18D000... Ok! Reading 0x18E000... Ok! Reading 0x18F000... Ok! Reading 0x190000... Ok! Reading 0x191000... Ok! Reading 0x192000... Ok! Reading 0x193000... Ok! Reading 0x194000... Ok! Reading 0x195000... Ok! Reading 0x196000... Ok! Reading 0x197000... Ok! Reading 0x198000... Ok! Reading 0x199000... Ok! Reading 0x19A000... Ok! Reading 0x19B000... Ok! Reading 0x19C000... Ok! Reading 0x19D000... Ok! Reading 0x19E000... Ok! Reading 0x19F000... Ok! Reading 0x1A0000... Ok! Reading 0x1A1000... Ok! Reading 0x1A2000... Ok! Reading 0x1A3000... Ok! Reading 0x1A4000... Ok! Reading 0x1A5000... Ok! Reading 0x1A6000... Ok! Reading 0x1A7000... Ok! Reading 0x1A8000... Ok! Reading 0x1A9000... Ok! Reading 0x1AA000... Ok! Reading 0x1AB000... Ok! Reading 0x1AC000... Ok! Reading 0x1AD000... Ok! Reading 0x1AE000... Ok! Reading 0x1AF000... Ok! Reading 0x1B0000... Ok! Reading 0x1B1000... Ok! Reading 0x1B2000... Ok! Reading 0x1B3000... Ok! Reading 0x1B4000... Ok! Reading 0x1B5000... Ok! Reading 0x1B6000... Ok! Reading 0x1B7000... Ok! Reading 0x1B8000... Ok! Reading 0x1B9000... Ok! Reading 0x1BA000... Ok! Reading 0x1BB000... Ok! Reading 0x1BC000... Ok! Reading 0x1BD000... Ok! Reading 0x1BE000... Ok! Reading 0x1BF000... Ok! Reading 0x1C0000... Ok! Reading 0x1C1000... Ok! Reading 0x1C2000... Ok! Reading 0x1C3000... Ok! Reading 0x1C4000... Ok! Reading 0x1C5000... Ok! Reading 0x1C6000... Ok! Reading 0x1C7000... Ok! Reading 0x1C8000... Ok! Reading 0x1C9000... Ok! Reading 0x1CA000... Ok! Reading 0x1CB000... Ok! Reading 0x1CC000... Ok! Reading 0x1CD000... Ok! Reading 0x1CE000... Ok! Reading 0x1CF000... Ok! Reading 0x1D0000... Ok! Reading 0x1D1000... Ok! Reading 0x1D2000... Ok! Reading 0x1D3000... Ok! Reading 0x1D4000... Ok! Reading 0x1D5000... Ok! Reading 0x1D6000... Ok! Reading 0x1D7000... Ok! Reading 0x1D8000... Ok! Reading 0x1D9000... Ok! Reading 0x1DA000... Ok! Reading 0x1DB000... Ok! Reading 0x1DC000... Ok! Reading 0x1DD000... Ok! Reading 0x1DE000... Ok! Reading 0x1DF000... Ok! Reading 0x1E0000... Ok! Reading 0x1E1000... Ok! Reading 0x1E2000... Ok! Reading 0x1E3000... Ok! Reading 0x1E4000... Ok! Reading 0x1E5000... Ok! Reading 0x1E6000... Ok! Reading 0x1E7000... Ok! Reading 0x1E8000... Ok! Reading 0x1E9000... Ok! Reading 0x1EA000... Ok! Reading 0x1EB000... Ok! Reading 0x1EC000... Ok! Reading 0x1ED000... Ok! Reading 0x1EE000... Ok! Reading 0x1EF000... Ok! Reading 0x1F0000... Ok! Reading 0x1F1000... Ok! Reading 0x1F2000... Ok! Reading 0x1F3000... Ok! Reading 0x1F4000... Ok! Reading 0x1F5000... Ok! Reading 0x1F6000... Ok! Reading 0x1F7000... Ok! Reading 0x1F8000... Ok! Reading 0x1F9000... Ok! Reading 0x1FA000... Ok! Reading 0x1FB000... Ok! Reading 0x1FC000... Ok! Reading 0x1FD000... Ok! Reading 0x1FE000... Ok! Reading 0x1FF000... Ok!
Basic read operation finished, but now it's time to verify...
Starting CRC check for 512 sectors, starting at offset 00
CRC matches 0x81C88304!
All read!
Loaded total 0x200000 bytes
Wrote 2097152 to readResult_BK7231N_QIO_2023-21-4--04-02-38.bin

I can't say what the issue is, but I'm assuming CRC passes because the CRC for all null bytes is also null bytes.  It appears to be all 0xFF data until the storage near the very end.

@kuba2k2 Unfortunately, after backing up the flash, I flashed it with OpenBeken firmware as I thought I have the factory firmware. I'll try with another one that I have, de-soldering the module is a pain as it is too close to the LCD and since this switch has tuya mcu, I wasn't able to flash/read it without de-soldering the module.

There's an external flash (24C02H) on the board, connected to P15 and P17 of CBU module, Maybe the firmware is on the flash and the internal flash is free!

24C02 is an EEPROM, not a flash.

So #162 has the app partition with no storage, so we couldn't verify a schema, and you had storage with no app.  Combined, it looks like we're finally able to get a profile together, added as Tuya Generic Zmai-90 Digital Energy Metering Switch
No configuration available, but it appears to be TuyaMCU driven.

Tried again on a second device.
ROM dump and Flash dump:
ZMAi-90.zip

Yep, that is a complete and valid dump, and I have verified it matches our combined bin output exactly.

So, There's no config even in this full dump. right?

Correct.  There is no user_param_key section present, which usually means it's all driven by TuyaMCU on RX1/TX1 and DPIDs.


Add TODO View

Should show all TODO items and which note it came from along with a link to the note.

@levlaz Hey, I can start working on this :) Do you want a 'TODO' button on the sidebar? And do you have any specific UI in mind for this view?


make deploy shouldn't enable opentelemetry by default

Proposal
make deploy is usually used for development purposes of KEDA. With some recent changes, if one run this command, KEDA is configured to enable opentelemery collector.
We should revisit this approach and don't enforce opentelemetry usage. make deploy is also used to run e2e tests in our infra - there is enabling the opentelemetry collector expected.
https://github.com/kedacore/keda/blob/5648b5702ae30fa295f231eb1684f2f5f37127f6/tests/utils/setup_test.go#L220
Use-Case
No response
Is this a feature you are interested in implementing yourself?
Maybe
Anything else?
No response

I think we can add a flag like AZURE_RUN_AAD_POD_IDENTITY_TESTS to enable/disable opentelemetry.


License

Would it be possible to get a license for this project (preferably compatible with MIT)?

Haha sure! go ahead and do a PR

Closed by #2


0.2.6

 You should sign our Contributor License Agreement in order to get your pull request merged.


Add undiscounted_base_shipping_price to Order

Add undiscounted_base_shipping_price that keeps the shipping price without applying any discount

base_shipping_price keeps the shipping price after applying discounts, with no tax included
shipping_price keeps the shipping price after applying discounts, with tax included

Ensure that proper values are set for new orders
FIx order.undiscounted_total - previously it was sum of undiscounted_subtotal and shipping_price now it's sum of undiscounted_subtotal and undiscounted_shipping_price

Related to https://github.com/saleor/saleor/pull/16240
Additional improvements:

make undiscounted_base_shipping_price non-nullable on Order model and API
move task migration to migration code
unify base_shipping_price between Checkout and Order - in both cases the price will keep the shipping price after applying discounts, with no tax included
use undiscounted_base_shipping_price in orders where previously base_shipping_price was used

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations

Docs

[ ] Link to documentation:

Pull Request Checklist

[ ] Privileged queries and mutations are either absent or guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migrations are either absent or optimized for zero downtime
[ ] The changes are covered by test cases
[ ] All new fields/inputs/mutations have proper labels added (ADDED_IN_X, PREVIEW_FEATURE, etc.)
[ ] All migrations have proper dependencies
[ ] All indexes are added concurrently in migrations
[ ] All RunSql and RunPython migrations have revert option defined

Migration perf test passed: https://github.com/saleor/saleor/actions/runs/9938616114


Use deterministic path creation

Fixes #1231
The change in this PR is backwards incompatible, so a backport variant can't be provided.

@Shredder121 Could you look again? I made some changes.

Yes, I will.

I think it looks good.
So I'll merge it then.

It looks good to me.


initial cam

Hi,
First of all, thank you for this great work! I’m currently using the following code to save the initial CAM and the refined CAM:
 np.save(os.path.join(args.cam_out_dir, output_filename),         {             "highres_cam": grayscale_cam_highres.astype(np.float32),             "attn_highres": cam_refined_highres.astype(np.float32),         })
The refined CAM (attn_highres) looks great and provides very accurate results, but the initial CAM (highres_cam) seems quite unusual or strange. Could you please help explain why this might be happening?

5c12b)

Thanks for your interest!
The results seem abnormal. I re-run this demo and the result is normal in my case. It seems that the cam save part is incorrect. You can directly follow our code in line209-214
np.save(os.path.join(args.cam_out_dir, im.replace('jpg', 'npy')),
                {"keys": keys.numpy(),
                "highres": highres_cam_all_scales.cpu().numpy().astype(np.float16),
                "attn_highres": refined_cam_all_scales.cpu().numpy().astype(np.float16),
                })

Note that the shape of grayscale_cam_highres is (h, w) while highres_cam_all_scales is (c, h, w) that save cams for c classes in an image. If the image only have one class, you can use grayscale_cam_highres but need to reshape it into (1, h, w). I have provided the visualization code I used for your reference. You can check and compare it with yours.

import cv2
import numpy as np
from pytorch_grad_cam.utils.image import show_cam_on_image
import os
from PIL import Image
from tqdm import tqdm

if __name__ == "__main__":
    class_names = ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle',
                       'bus', 'car', 'cat', 'chair', 'cow',
                       'diningtable', 'dog', 'horse', 'motorbike', 'person',
                       'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor',
                       ]
    cam_dict_root = '/root/code/CLIP-ES/output/voc12/demo/'#2007_000876.npy
    img_root = '/root/datasets/VOC2012/JPEGImages/'
    cam_list = sorted(os.listdir(cam_dict_root))

    save_path = '/root/code/CLIP-ES/vis/demo'
    if not os.path.exists(save_path):
        os.makedirs(save_path)

    for idx in tqdm(cam_list):
        cam_path = os.path.join(cam_dict_root, idx)
        cam_dict = np.load(cam_path, allow_pickle=True).item()
        keys = cam_dict['keys']

        img_path = os.path.join(img_root, idx.replace('.npy', '.jpg'))
        image1 = np.array(Image.open(img_path))
        image1 = (image1 - image1.min()) / (image1.max() - image1.min())
        bgr_img = image1
        bgr_img = bgr_img.astype(np.float32)

        cams = cam_dict['highres']
        for i, k in enumerate(keys):
            category = class_names[k]
            cam = cams[i]
            visualization = show_cam_on_image(bgr_img, cam, use_rgb=False)
            cv2.imwrite(os.path.join(save_path,idx.replace('.npy', '_highres_'+category+'.jpg')), visualization)

        attn_cams = cam_dict['attn_highres']
        for i, k in enumerate(keys):
            category = class_names[k]
            cam = attn_cams[i]
            visualization = show_cam_on_image(bgr_img, cam, use_rgb=False)
            cv2.imwrite(os.path.join(save_path, idx.replace('.npy', '_attn_highres_' + category + '.jpg')), visualization)

Thanks


matrix-commander-rs: init at 0.1.32

Description of changes
CLI-based Matrix client app for sending and receiving
https://github.com/8go/matrix-commander-rs

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 256527 run on x86_64-linux 1

1 package built:

matrix-commander-rs


[WIP] remove volume duplicates and remove volume from baseos

Seems, that we should not provide volume for baseOS by default, only image
Signed-off-by: Petr Fedchenkov<EMAIL_ADDRESS>

It is quite interesting @deitch , but without volume inside baseos I solve https://github.com/lf-edge/eve/pull/1986#issuecomment-806492829 for me. Need more testing on it. @sadov please try to reproduce your experiments.

@giggsoff what does this change? I read the code, but don't see what it changes for eve?

@deitch it removes VolumeID from BaseOSConfig and related Volume and contentInfo. I mean
@@ -49,7 +49,6 @@
             ],
             "activate": true,
             "baseOSVersion": "6.0.0-kvm-amd64",
-            "volumeID": "7cb64af3-7580-494d-8b3a-69a475a5bb5c"
         }
     ],
     "reboot": {
@@ -242,24 +241,5 @@
             "usage": 3
         }
     ],
-    "productName": "ZedVirtual-4G",
-    "contentInfo": [
-        {
-            "uuid": "9473e763-9041-4957-9cfe-8f25e0ee2bfa",
-            "dsId": "8131d06d-f87d-416e-bad4-f74da1a1b20c",
-            "URL": "lfedge/eve:6.0.0-kvm-amd64",
-            "iformat": 8,
-            "displayName": "lfedge/eve:6.0.0-kvm-amd64"
-        }
-    ],
-    "volumes": [
-        {
-            "uuid": "7cb64af3-7580-494d-8b3a-69a475a5bb5c",
-            "origin": {
-                "type": 2,
-                "downloadContentTreeID": "9473e763-9041-4957-9cfe-8f25e0ee2bfa"
-            },
-            "displayName": "stoic_keldysh_0_m_0"
-        }
-    ]
+    "productName": "ZedVirtual-4G"
 }

As somebody who introduce it to begin with -- I'm a big +1 to get rid of it @giggsoff


Allow custom Pinwheel config per-site

Ticket
First part of FFS-1179
Changes

Create "sandbox" site for internal testing
Move Pinwheel API token into site-config.yml
Allow specifying the Pinwheel environment per site

Context for reviewers
Context in commit messages.
Next steps in PRs after this is merged:

Add environment variables for "development" Pinwheel credentials
Update NYC and MA sites to use development Pinwheel credentials

Testing
Tested by going through the flow locally.

Does it work locally?

Yes!


stopped maintaining the ZTP relocatable effort

Added a comment that the project is no longer maintained.

@jhernand please review.


Problem: (cro-1231) no tx-building in ios example using c-bindings

Solution: add low level tx-building api (unbond, withdraw, transfer, deposit)

i'll check


preserve final request node

Otherwise we lose onResponse
issue for 8-state.glass

https://github.com/glass-platform/promptfile/pull/490


Can this be run on Ubuntu as well?

Or I need windows machine only to run these applications?

Yes, you can find a Linux build in the releases page: https://github.com/zeronetworks/BlueHound/releases/tag/v1.0.0
However, you will not be able to run SharpHound for data collection.
You can either collect the data separately, or use the ROST iso on a VM.


Slack Webhooks no longer support channel and username except in legacy webhooks.

Describe the bug
When configuring notifications to slack the documentation specifies that you can set the channel and username.
Also detailed in the API spec
Slack have moved their old webhooks into legacy in favour of App based webhooks
Steps to reproduce

Configure a new Slack webhook, which must be set to a specific channel, and created in an app with an automatically created "bot" / user.
Configure a Provider.notification.toolkit.fluxcd.io/v1beta1 of type: slack and specify another channel
Observe that logs are sent to the webhook channel

Expected behavior
The "legacy" behavior of Slack was to be able to send to any channel.
While legacy webhooks are still available they are scheduled to be removed.

You're reading this because you're looking for info on legacy custom integrations - an outdated way for teams to integrate with Slack. These integrations lack newer features and they will be deprecated and possibly removed in the future. We do not recommend their use.

 Quick question for clarity's sake: Do you know whether it's still possible to create the legacy webhooks?

@sastorsl in reference to

Observe that logs are sent to the webhook channel

Can you paste an excerpt of the logs you're seeing?

Do you know whether it's still possible to create the legacy webhooks?

We definitely have legacy webhooks working still. We discovered it when one of our users got disabled as a Slack user and one of their really old webhooks got disabled in the process.
Our Slack admin tells me it's possible to create a legacy webhook still, but it is of course living dangerously.
For some workload it's nothing more than a chore, that is creating a lot of webhooks and reconfiguring for the proper channels.
But we also have users being able to send alerts to custom channels where this is a bigger issue - if those webhooks are disabled down the line.

The only thing I see we can do about this is to document this better since the .channel field is part of the general Provider spec.

I agree.


Return datetimes as strings, not epoch dates

Fixes #2.
Google Sheets datetimes are saved as days since December 30th, 1899: changed the API request to return the actual formatted string, instead of the epoch date.
https://developers.google.com/sheets/api/guides/concepts#datetime_serial_numbers

Coverage remained the same at 100.0% when pulling d5e5657b79dc5e4f3ccb5cff3f91dddd373a9f22 on Illedran:master into 7f3d8108fd93cc47dd2225c5cbf3d88effda0c83 on xflr6:master.

Thanks!


chore: update various outdated node_modules

Description of Change

remove unused atob, marked, node-abi and css
upgrade uuid, tar, validator, ws, typescript-eslint, eslint-config-airbnb-typescript and eslint-plugin-prettier to latest
add mocha to types config of tsconfig so it is recognized for unit tests
change uuid imports to conform to v8

Motivation and Context
References https://github.com/getferdi/ferdi/issues/1495
I read through all changelogs of the respective packages that I upgraded. Except for uuid, there were no code updates necessary. I installed a production build with the upgrades as .deb locally and everything worked fine.
Please make sure to test this locally with a production build since it upgrades various dependencies with breaking changes.
Checklist

[x] My pull request is properly named
[x] The changes respect the code style of the project (npm run prepare-code)
[x] npm test passes
[x] I tested/previewed my changes locally

There is one issue left:

Cannot read property 'request' of undefined, coming from ServerApi.getRecipePackage() from electron-fetch


How to test the template before submiting to template store?

I want to submit a template but i am not sure about its correctness. Is there any way to build a function from my own template so I can test it locally? So far the lab3 just provide a way to build function by templates from store.

Glad to hear you're interested in OpenFaaS.
It would be best if you could follow the instructions in the contribution guide and propose your template suggestion before submitting a PR.
Thanks,
Alex


Remove Hadoop winutils, too brittle (see #2313)

For #2313.
Let's see if it runs okay on Appveyor and interactively as a user.

Hmmm, it appears that Winutils is actually not optional on Windows.
Let me think of another solution.