Current project stage

README contains information about the five stages of the project, but it does not say in which stage is at the moment.

Thanks for your observation, the issue will be resolve and the README file will be updated as soon as possible. But you can please send an email to either felipe_at_nodeio.us or cheerantz_at_gmail.com if you will be willing to collaborate on the project.

We're between the stage 1 and stage 2. Just in case.


Module 1 exercises [CHAPMAN OWUSU-SEKYERE]

Please "drag & drop" exercise 1 file below.

WS2_M1E1_Submission.docx

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

WS2_M1E1_Submission.docx

Thank you for your successful submission to the practice exercise! Please be sure to fill out the post-Module survey.


1 [B5] Dynamically sized data stored in Instance storage

As a general rule, dynamically stored data should not be stored in Instance storage and should be stored in Persistent storage instead. Two reasons that Persistent storage is recommended over Instance storage is that 1. all of Instance storage is read for any call to the contract, even if the dynamic data is not accessed, and 2. there becomes a risk of overflowing the allocated buffer for Instance storage as the dynamic data grows in size.
contracts/aggregator/src/storage.rs:72:87 stores a Vec<String> in Instance storage. This vector holds the identifiers for the protocols that can be used to swap assets. It is expected that the number of identifiers stored in this vector is less than 10, and so this should cause negligible overhead for 1. and there should be no risk of 2. (listed above). That being said, there are no guards in the contract itself to protect from the vector growing unbounded, and so this is only enforced by the Admin and without consideration it is possible to grow the vector to an inappropriate size.

Dynamically Sized Data in Instance Storage
Severity: Informative Recommended Action: Fix Code Not addressed by client
Description
As a general rule, dynamically stored data should not be stored in Instance storage and should
be stored in Persistent storage instead. Two reasons that Persistent storage is recommended
over Instance storage are:

All Instance storage is ready for any call to the contract, even if the dynamic data is not
accessed;
There becomes a risk of overflowing the allocated buffer for Instance storage as the
dynamic data grows in size.
The functions responsible for storing and fetching the protocol ids in the aggregator (lines 72 to
87 of the storage module of the Aggregator) specifically use Instance storage to handle a
Vec . This vector holds the identifiers for the protocols that can be used to swap
assets. It is expected that the number of identifiers stored in this vector is less than 10, and so
this should cause negligible overhead for reason number 1, and there should be no risk of
issues related to reason number 2 (listed above). That being said, there are no guards in the
contract itself to protect from the vector growing unbounded, and so this is only enforced by the
Admin, and without consideration, it is possible to grow the vector to an inappropriate size.
Recommendation
When handling data of dynamic size in storage, use Persistent storage instead of Instance.

Response to Audit Feedback on Instance Storage for Dynamically Sized Data
We appreciate the audit team’s recommendation regarding the use of Persistent storage for dynamically sized data instead of Instance storage. However, given the design and expected usage of the Aggregator contract, we believe that Instance storage is appropriate for the following reasons:

Minimal Risk: The Aggregator contract currently manages a small number of adapters. The use of Instance storage for protocol identifiers keeps the risk of storage overflow and performance overhead minimal.
Future Flexibility: If the number of adapters grows significantly in the future, we can upgrade the contract to use Persistent storage. This approach allows us to optimize for current usage while retaining the flexibility to adapt as needed.

We believe that the current use of Instance storage is suitable and does not pose a significant risk, but we remain open to revisiting this decision if circumstances change.


Allow images missing for different arches

Goes hand in hand with https://github.com/openshift/aos-cd-jobs/pull/2035

I'll get testing this today.

This is real close! I just noticed a few little differences from the existing output and a note I'd like added:

Could you add to the command docstring If you use -i,--images then you must manually include 'openshift-enterprise-cli' in the list
The pushed tags do not follow the same convention as we have been following up until now. Previously we pushed tags like this

quay.io/openshift-release-dev/ocp-v4.0-art-dev:v4.3.0-201911132228-s390x-ose-cli
quay.io/openshift-release-dev/ocp-v4.0-art-dev:v4.3.0-201911132228-ose-cli
VERSION-RELEASE-[ARCH-]ose-COMPONENT

This PR has changed that. The ose prefix has been omitted:

quay.io/openshift-release-dev/ocp-v4.0-art-dev:v4.3.0-201911132228-s390x-cli

This appears in the SRC=DEST files as well as the Image Streams (which is consistent). That format has been defined for a while, I can't think of any reason we should make that change right now.
I noticed the SRC=DEST files are referencing SRC images by SHA digest now:

registry-proxy.engineering.redhat.com/rh-osbs/openshift-ose-machine-config-operator@sha256:a16301e0b459bb2dda1d22a21b776536804147008544a4738b603397f8601f31=quay.io/openshift-release-dev/ocp-v4.0-art-dev:v4.3.0-201911140352-s390x-machine-config-operator

Which isn't necessarily a problem, it's just different and caught my eye. To satisfy my own curiosity, is there a particular reason for this change, or did it just work out that way when you wrote the patch?

Added ose- back in.
By using sha, we eliminate the dependency on oc mirror image to filter by arch. The shas in the mirroring list are precisely the right image for a specific arch (not manifest lists). In fact, all the src_dest files could be in a single file now if we wanted.

Added ose- back in.

:+1:

By using sha, we eliminate the dependency on oc mirror image to filter by arch. The shas in the mirroring list are precisely the right image for a specific arch (not manifest lists).

Nice. Super smart.

In fact, all the src_dest files could be in a single file now if we wanted.

:thinking: Interesting. Let's skip that for now. I think once you get the lint fixed up we're good to merge this.

/lgtm


fix the shivering elements

What does this pull request aim to achieve? 💯
Resolves #1248
Please be concise and link any related issue(s):

[x] I have checked that no one else is working on similar changes.
[x] I have read the latest README and understand the development workflow.
[x] The name of this branch is: feature/<branch_name>, or hotfix/<branch_name> if this is a hotfix. The branch is created in a cloned version of this repo, not a forked repo.
[x] This branch is rebased/merged with the latest staging (or the latest production if it is a hotfix).
[x] There are no merge conflicts.
[x] There are no console warnings and errors.
[x] On the right hand side of this PR, I have linked the appropriate issue(s) under "Issues" and added a project progress under "Projects".

FYI.. The observation @rabbi08  mentioned for create post-drop-down size change is NOT happening on WINDOWS OS -Chrome and Edge

Hi @rabbi08, your request is updated.
Please check it out.


Repository not initialized

Error: Repository not initialized
at O.run in extensions/git/src/repository.ts:1822:10
at O.checkIgnore in extensions/git/src/repository.ts:1730:15
at checkIgnore in extensions/git/src/decorationProvider.ts:65:20
at apply in extensions/git/src/decorators.ts:98:41
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)

Go to Errors Site

Closing as duplicate of #174556


Unions when using inputRef cause errors

We have a union that we are using inputRef with which causes a typing error:

Problem is stemming out of having some fields required in one option in the union, and not required (optional) in another. Setting required: false with Giraphql creates this error.
Probably no easy work around here other than using inputType in exchange with inputRef.

Can you provide more context?
Here's two examples:
type SomeType = ({ a: number; b: number } | { a: null; b: null }) & { c: number };
const SomeInput = builder.inputRef<SomeType>('SomeInput').implement({
  fields: (t) => ({
    a: t.int({ required: false }),
    b: t.int({ required: false }),
    c: t.int({ required: true }),
  }),
});

Errors with:
Type '{ a: InputFieldRef<number | null | undefined, "InputObject">; b: InputFieldRef<number | null | undefined, "InputObject">; c: InputFieldRef<number, "InputObject">; }' is not assignable to type 'InputFieldsFromShape<{ a: number; b: number; c: number; } | { c: number; a?: null | undefined; b?: null | undefined; }>'.
  Type '{ a: InputFieldRef<number | null | undefined, "InputObject">; b: InputFieldRef<number | null | undefined, "InputObject">; c: InputFieldRef<number, "InputObject">; }' is not assignable to type 'InputFieldsFromShape<{ c: number; a?: null | undefined; b?: null | undefined; }>'.
    Types of property 'a' are incompatible.
      Type 'InputFieldRef<number | null | undefined, "InputObject">' is not assignable to type 'InputFieldRef<null | undefined, "InputObject">'.
        Type 'number | null | undefined' is not assignable to type 'null | undefined'.
          Type 'number' is not assignable to type 'null | undefined'.ts(2322)

const EnumA1 = ['A1', 'A11'] as const;
const EnumA2 = ['A2', 'A22'] as const;

const EnumA = builder.enumType('EnumA1', {
  values: [...EnumA1, ...EnumA2] as const,
});

type SomeWithEnumType = ({ a: typeof EnumA1[number] } | { a: typeof EnumA2[number] }) & {
  c: number;
};
const SomeInput = builder.inputRef<SomeWithEnumType>('SomeInput').implement({
  fields: (t) => ({
    a: t.field({ type: EnumA, required: true }),
    c: t.int({ required: true }),
  }),
});

errors with
Type '{ a: InputFieldRef<"A1" | "A11" | "A2" | "A22", "InputObject">; c: InputFieldRef<number, "InputObject">; }' is not assignable to type 'InputFieldsFromShape<{ a: "A1" | "A11"; c: number; } | { a: "A2" | "A22"; c: number; }>'.
  Type '{ a: InputFieldRef<"A1" | "A11" | "A2" | "A22", "InputObject">; c: InputFieldRef<number, "InputObject">; }' is not assignable to type 'InputFieldsFromShape<{ a: "A2" | "A22"; c: number; }>'.
    Types of property 'a' are incompatible.
      Type 'InputFieldRef<"A1" | "A11" | "A2" | "A22", "InputObject">' is not assignable to type 'InputFieldRef<"A2" | "A22", "InputObject">'.
        Type '"A1" | "A11" | "A2" | "A22"' is not assignable to type '"A2" | "A22"'.
          Type '"A1"' is not assignable to type '"A2" | "A22"'.ts(2322)

What you are trying to do is not technically valid.  It's not intentional that type-checking fails, but the types you are using to describe your inputs don't actually map correctly to how the would be described in your schema.
Given the type:
type SomeType = ({ a: number; b: number } | { a: null; b: null }) & { c: number };
The closest way this could be represented in graphql would be { a: number | null, b: number | null, c: number }.  I'll update GiraphQL to interpret unions like this when creating an inputRef from a union type.

I created a PR with a fix/workaround.
Some tests are failing, and I think this may add more complexity to the inputRef logic than makes sense.
A workaround on your end is to just merge the unions yourself before passing them to the inputRef:
export type MergeUnion<T> = keyof T extends infer U ? { [K in U & keyof T]: T[K] } : never;

Latest version of GiraphQL should work as described above

Awesome! thank you for the quick turnaround on this. Going to update on my end and test

Hmm, I think this may have caused a regression @hayes. See:

Given:
const UpdatePolicyInput = builder
  .inputRef<Prisma.PolicyUncheckedUpdateInput & { id: string }>('UpdatePolicyInput')
  .implement({
    fields: (t) => ({
      id: t.id({ required: true }),
      name: t.string({ required: true }),
    }),
  });

builder.mutationField('updatePolicy', (t) =>
  t.field({
    type: PolicyObject,
    authScopes: { admin: true },
    args: {
      input: t.arg({ type: UpdatePolicyInput, required: true }),
    },
    resolve: async (_, { input: { id, name } }, { prisma }) => {
      // TODO: add prisma transaction and validation
      const policy = await prisma.policy.update({
        where: { id },
        data: {
          name,
        },
      });

      return policy;
    },
  })
);

it shows id as string | {}

@hayes I think this caused a regression with Date types.
In my builder I have:
Date: {
      Input: Date;
      Output: Date;
    };

And whenever used in an input:
const UpdateInput = builder.inputRef<{ id: string; date: Date }>('UpdateInput').implement({
  fields: (t) => ({
    id: t.id({ required: true }),
    date: t.field({ type: 'Date', required: true }),
  }),
});

builder.mutationField('updateMutation', (t) =>
  t.field({
    type: 'Boolean',
    authScopes: { admin: true },
    args: {
      input: t.arg({ type: UpdateInput, required: true }),
    },
    resolve: async (_, { input: { id, date } }) => {
      console.log(id, date);
      return true;
    },
  })
);

The date object comes back as:

That's not good.  Reverting now and will release a reverted version in a minute.

@mmahalwy After thinking about this some more, I am not sure it's reasonable to try to support this directly.
I think using a utility like MergeUnion before passing the union type to inputRef is the correct solution here.  Adding union merging into inputRef would add some hard to document behavior that probably isn't very intuitive.  If you are using types that do not map directly to the graphql input shape, then merging/converting is something that should be left up to the application.
Unions generally include behavior that can't be represent in graphql input types (like your example above).  I am guessing the actual type comes from a validation schema or something like that.
A possible solution for that use case would be to create a method that (for example) takes a zod schema, infers its shape, and then creates an implementable input ref from the that schema.  That method could include the logic for merging any potential schemas, allowing you to implement fields of looser (merged) type, while still typing the ref (and args/fields that use the ref) with the more accurate types that describe the parsed result.

@hayes that makes sense. And appreciate the quick follow up on this. I agree, we can convert the unions on our end. I found this to help too: https://github.com/sindresorhus/type-fest/blob/main/source/union-to-intersection.d.ts


#5 Simplify db connection

Affected from
https://cloudmaker.dev/how-to-create-a-rest-api-in-rust/
https://zenn.dev/frozenlib/articles/lazy_static_to_once_cell

use diesel_migrations::embedded_migrations
create dbpool on global constant

fix #5


Stop adding features, It works just fine!

Why must features on top of features keep getting added? I use VSCode for its speed and performance over visual studio.  Now all of a sudden I'm getting "window has crashed" when VSCode runs through its compile time update cycle to check for inline errors. Just stop and leave it alone. Bugfixes only man!

I partially agree that adding features constantly will remove its key benefits like speed and performance. Although I do have to say that some features are really usefull/necessary in probably most environments.
I kinda feel like there should be a way to start VSCode as a basic lightweight editor where the user choose to add/enable more features based on the needs of certain projects/environments the user has to deal with. Which might improve VSCode for those that don't really need a lot of features, and also make it more flexible to those that need it.

@BillyCottrell Yeah true, But I've been able to do the work I'm doing for the last year or 2 now without issue. Any added features I generally don't use. The should be focusing features into extensions so everyone isn't forced to use em.  Just my opinion anyways ;)

@ExDeaDguY sorry that you ran into the "window has crashed" problem.  Are you still seeing this issue?  if you can repro the problem still can you add the steps here? Also, this link may help: https://github.com/microsoft/vscode/wiki/Native-Crash-Issues
We do try to build as much as we can of VS Code as extensions. In fact, you can see all of the built-in extensions, and disable them, from the Extension Viewlet. click on the "..." and choose Show Built-In Extensions:

@ExDeaDguY the dotted lines you see may be a change we made in the latest release to show whitespace on selection by default (see https://code.visualstudio.com/updates/v1_43#_render-whitespace-on-selection). You can turn this off by changing the renderWhitespace setting to none, like this in settings.json:
{
   "editor.renderWhitespace": "none"
}


add test case for routing engine

add test case for routing engine

Pull Request Test Coverage Report for Build 5560

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+32.06%) to 68.106%

Totals

Change from base Build 5556:
32.06%

Covered Lines:
8168

Relevant Lines:
11993

💛  - Coveralls


How do you get the return data from a mutation?

So when you call mutations in Graphql, you can ask for some return data. How do you do that with this library? I see no way to get what the server has sent back after making a mutation.

I made a custom useMutation hook, which allows returning data, loading and error from mutation
import useClient from "./useClient";
import gql from "graphql-tag";
import { useState, useContext } from "react";

function useMutate(
  url: string,
  mutation: any,
): [any, { data: any; error: any; loading: any }] {
  const client = useClient(url);
  const gqlQuery = gql(mutation);
  const [data, setData] = useState(null);
  const [error, setError] = useState(null);
  const [loading, setLoading] = useState(false);

  const onClick = async (variables: any) => {
    try {
      setLoading(true);
      const res = await client.mutate({
        mutation: gqlQuery,
        variables
      });
      setLoading(false);
      if (res.data) {
        setData(res.data);
      } else {
        // setError(JSON.stringify(res.errors, Object.getOwnPropertyNames(res.errors))))
        console.log(res)
      }
    } catch (e) {
      // console.log(e);
      setLoading(false);
      setError(e);
    }
  };

  return [onClick, { data, error, loading }];
}

export default useMutate;

@revskill10 Thanks you for that custom hook. I actually managed to figure it out but I didn't use a custom hook instead. How does your custom hook differ from passing in update and using mutationResult?

@joshuarobs What do you mean by passing in update and using mutationResult ?
The usage is simple:

const [mutate, { data, error, loading} = useMutate(url, mutationQuery)

@revskill10 This is what I am using, which I found from the readme:
const [createUser, { loading }] = useMutation(CREATE_USER_MUTATION, {
    update: (proxy, mutationResult) => {
      console.log('mutationResult: ', mutationResult);
    },
    variables: {
      firstName,
      lastName,
      email,
      password,
    },
  });

The result from the mutation is in the mutationResult argument. But it only gets the result (if successful). I have no way that I know of where I can get the error message if the mutation fails.
I'm going to try your custom hook since it appears as though it can support returning the error. Also what is useClient in your custom hook?

@joshuarobs My useMutate is used differently.
const onClick = () => {
   mutate(variables)
}

This library force variables in the argument of the hook, which i see is not flexible enough.
THe useClient is just a hook to return the Apollo Client.


Exercise: The sum of a range

Closed #214

Try keep it DRY

I have removed the code duplication from source code and also I have added one more check into the range.js file for the calculating of range with reduced numbers with a step by default (range(10, 1))


Add BUILD_FUZZERS to compilation-options.md

Also add missing ENABLE_LIBFUZZER option.

Coverage remained the same at 98.653% when pulling e6a3964a5527b01449c63cbd1c6b33da2f276677 on isaacbrodsky-patch-2 into f8a0a84340120652ed8b4350782861a1841a4fcb on master.


[Doc][Cluster] Documentation is too sloppy

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
The cluster mode should be the focus, but the author tells readers to refer to the pseudo-cluster document, which will only increase the difficulty of deployment for developers and affect the robustness of the main program
Documentation Links
https://dolphinscheduler.apache.org/zh-cn/docs/3.1.2/guide/installation/cluster

Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Is there anybody else who has the same question? please leave a message


Empirically determine substitutions and homopolymers based on a first assembly?

Do you think that it would make a big difference for the assembly quality if one would determine the parameters contained in 'nano_homopolymers.mat' and 'nano_substitutions.mat' empirically for a specific ONP run. One could do a first "preliminary assembly" map the ONP data back, determine the parameters and then do a second assembly with refined tuning.
How did you generate the substitutions.mat?

Yes, ideally it should be possible to learn the frequencies from the assembly, maybe in an iterative manner. Also, current nanopore profiles might be a bit outdated (generated with older chemistry) - we are planning to update them. Probably, the profile might also depend on the basecaller.
On the other hand, it seems that currently any kind of consensus from basecalled nanopore reads will not be perfect and require further polishing with raw signal / Illumina reads - so a quality improvement due a "corrected" error profile might not make a big difference.

Also, I see that you guys are doing some work in the forked repository - this is exciting! Just a heads up - in the new version we are planning to change the repository structure / output format a bit (we are planning to release it in a week or two). I am trying to keep the commits as clean as possible to make the merging process easier (in case you will be interested).

Thanks for the detailed answers. So having a look at the code and reading your response I guess the substitution matrix / homopolymer.mat is mainly used during polishing and bubble correction? In this case it would indeed not be very important to us since we anyway do a round of polishing using nanopolish and mapping Illumina reads as you say.
Second point; yes I forked your repo and integrated GraphMap (as discussed in an earlier thread, used a different account there so don't be confused :) ). I integrated it to a point where the automated installation, integration and running of GraphMap works perfectly on my side. But there is no documentation about the changes. I roughly tested it, but did not have time yet to check what difference it makes. For sure it takes much longer with GraphMap. So I'll do a pull request later and if you feel like testing GraphMap I'd be glad. But as you stated earlier, probably does not help much.


The List Roles Endpoint in SCIM 2.0 API Ignores 'Attributes' Parameter

Describe the issue:
It retrieves 'displayName', 'meta', and 'id' attributes of all roles although I sent a request to retrieve only the 'displayName' of all roles. Same behaviour happens for requests to retrieve only the 'id' of all roles.

How to reproduce:

Create some roles (about 5) though SCIM 2.0 API
Send a GET request to https://localhost:9443/scim2/Roles?attributes=displayName
Send a GET request to https://localhost:9443/scim2/Roles?attributes=id

Expected behavior:
When we send a GET request to https://localhost:9443/scim2/Roles?attributes=displayName, it should retrieve only the 'displayName' of all roles in the system.
When we send a GET request to https://localhost:9443/scim2/Roles?attributes=id, it should retrieve only the 'id' of all roles in the system.
Environment information :

Product Version: IS 6.0.0-m1
OS: Mac OS 12.3.1
Database: PostgreSQL 14
Userstore: LDAP

Closing this because the SCIM2 API does not support 'attributes' query param at the moment.


Help : How do I connect to Infura/Alchemy using ether-swr?

The given example shows ether-swr connected to injected connector. For functions like getLogs, I need to connect to an RPC provider. Is there something I could look up for the same? I've tried reading various articles/tutorials but I couldn't find anything that follows the same way ether-swr does. I'd like to get the address from MetaMask and make multiple getLog queries to the Alchemy. Pointing to the right resource is would be really helpful. Thanks!

Mmm not sure it can work.
Never tried to use getLogs with ether-swr but you could use directly an ethers.js provider https://docs.ethers.io/v5/api/providers/#providers
const web3Provider = new JsonRpcProvider(
    'your URL with API key here '
  )

then you pass the web3Provider to EtherSWRConfig or directly to useEtherSWR.
<EtherSWRConfig
          value={{
            web3Provider,
          }}
        >
          <DoSomethingWithTheLogs/>
</EtherSWRConfig>

function DoSomethingWithTheLogs() {
          const { data } = useEtherSWR(['getLogs'])
          return
Balance, {data}

        }

It looks like the filters can be built using a positional approach
https://github.com/ethers-io/ethers.js/issues/908#issuecomment-649297025
However, ether-swr doesn't cover this use case.  So you can call getLogs but you can't filter. You can use a useEffect and getLogs with your filter as a workaround

Got it. Thank you for the explanation! I think I'll go with directly wrapping SWR over ethers.

Solved :)


Add W3C reference link

What page is the change request for? Please supply the URI.
https://a11y.canada.ca/en/best-practices-for-accessible-virtual-events/#virtual-events
Approval needed?
None
Yes, please send a request to the following person?
No response
Who shall do the work?

[ ] I will do it, I want to contribute
[X] I am asking for someone else to please do the work

Timeline
No response
Additional context
Can we add this link: as a For reference bullet

And add this link as a À titre de référence: W3C (en anglais seulement) bullet on the French page please

@Syracopoulos Can you please supply a Word document with track changes?


livereload.js request is hanging attempting to GET through a reverse proxy connection. no debug output available.

What version of Livereload are you using?
0.9.1
What OS are you using?
debian
What web browser are you using? (Browser name and specific version please)
chrome Version 84.0.4147.135
Expected result
To test my reverse proxy config Im trying to manually download mydomain.com/livereload/livereload.js?snipver=1 from the browser through my proxy server but its just hanging and timing out with no errors nor notifications. I'm quite confident that the request is hitting default livereload port (see nginx test code commented out) and if i change the port to anything other than the default i get a 502 Bad Gateway - so i think im hitting it through the proxy.
I want to be able to load livereload.js in the browser through a reverse nginx proxy using the location route to confirm my proxy configuration is working. Ive started livereload with the following settings...
livereload . -w 1000 -d -u true -e 'css,js,scss,html,twig'
Note: I'm using polling=true
This is my location block. note commented inclusion of test to check the proxypass URL is correct.
  location ~ ^(\/livereload).+(.js)$ {
    add_header Content-Type text/html;
    # return 200 '
    #
proxypass test success=http://<IP_ADDRESS>:35729$1/livereload.js?snipver=1

    # ';
    proxy_pass http://<IP_ADDRESS>:35729$1/livereload.js?snipver=1;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

I should be able to fetch liveload.js from the browser at  mydomain.com/livereload/livereload.js?snipver=1. livereload should not hang without some output or feedback.
Actual result
GET mydomain.com/livereload/livereload.js?snipver=1  on page load appears to just hang my site with no output on the server. If I terminate livereload my site loads immediately so it appears that the GET request to livereload is not returning.
Steps to reproduce issue

start livereload on the server
try to fetch mydomain.com/livereload/livereload.js?snipver=1
observe no response and no server log messages from livereload

Why is this important?
it would be useful to have this working through a reverse proxy for demonstrating to clients.

almost certainly outside scope of this package so closing and seeking other solutions

This was a proxying issue i can now retrieve the file with nginx location block:
  # strip out the firt URI path and append directly to port.
  location ~ ^(\/livereload)(.+) {
    proxy_pass http://<IP_ADDRESS>:35729$2;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }


fix: add logs and metrics around pusher retries

This change is

@acud , I'm closing this issue as you already took it in your PR.


Aggregator suggests to skip rounds

This test shows that oracleRoundState recommends the right roundId to report on at the time of the call. If there is second reporter that submits in the meantime, before the first reporter finishes submission, the recommendation can become outdated.
To limit the times when submission roundId becomes outdates, we have to synchronize data feed workers through listeners. We can additionally test whether the submission roundId is still appropriate right before the submission, however it would not be necessary if data feed workers synchronize correctly.

LGTM!


Version 1.0.6 is missing dist folder

The latest version 1.0.6 is missing the dist/main.js file pointed by the main key in package.json

You're correct. Looks like something went wrong with the most recent release. Sorry for the inconvenience. I've deprecated it and re-published as<EMAIL_ADDRESS>Hope this release works better for you.

yes, 1.0.7 is working correctly, Thank you!


[8] Project Page Redesign

Redesign Project Page with a focus on conversion.
RICE Score
Reach=4
Impact=3
Confidence=2
Effort=3
Score: 8
Subtasks

[ ] User Research
[ ] Wireframes
[ ] Screen Designs
[ ] Prototype Usability Testing
[ ] Technical Scoping
[ ] Dev
[ ] Usability Testing/QA

Project page user interview recordings, notes and key takeaways are now here in the Frontend Notion: https://juicebox.notion.site/Project-Page-User-Testing-Feb-2023-6ac3756d3e8041a1bc14fad9513bc304


delete obsolete ComposeComposableModifier lint check

This rule is deprecated as composable Modifier factories are now officially permitted.
Solves #369

I signed the CLA but nothing is happening 😢

@salesforce-cla help

I signed the CLA but nothing is happening 😢

@ZacSweers Can you help, please?

am I missing something?

am I missing something?

Huh, I'm pretty sure I still saw the cla:missing tag when I wrote the comment. Weird.


both c rpc and rpc-go seem to be missing the DNS Suffix set in MEBx

This is a device that (with help), I finally got activated using... (oh, darn, the c rpc client, will need to deactivate tomorrow, and try with rpc-go too)
sudo docker run --rm -it --device /dev/mei0 --net host ptrdin/amt:rpc --amtinfo all
[sudo] password for sven:
Version                : 9.5.65
Build Number           : 3000
SKU                    : 8200
UUID                   : e0d06f81-520d-11cb-877b-f4659e6714b7
Control Mode           : activated in admin control mode
DNS Suffix             :
DNS Suffix (OS)        :
FQDN                   : t440s.vprodemo.com
Hostname (OS)          : t440s
RAS Network            : outside enterprise
RAS Remote Status      : connected
RAS Trigger            : periodic
RAS MPS Hostname       : <IP_ADDRESS>
LAN Interface          : wired
DHCP Enabled           : true

sven@t440s:~$ sudo docker run --rm -it --device /dev/mei0 --net host ptrrd/openamt:rpc-go amtinfo
[sudo] password for sven:
Version			:
Build Number		: 3000
SKU			:
UUID			:
Control Mode		: unknown state
DNS Suffix		:
DNS Suffix (OS)		:
Hostname (OS)		: t440s
RAS Network      	: outside enterprise
RAS Remote Status	: connected
RAS Trigger      	: periodic
RAS MPS Hostname 	: <IP_ADDRESS>
---Wired Adapter---
DHCP Enabled 		: false
DHCP Mode    		:
Link Status  		:
IP Address   		:
MAC Address  		:
---Wireless Adapter---

(need to add Photo of the MEBx screen from my phone)

resolved in RPC-Go with #46


Documentation is inaccurate

The documentation on the main page is inaccurate
for example:
git status does not work; gives errors
  # When "custom" is set, lsd will look in the config directory for colors.yaml.
does not work; give error:
lsd: Not a valid theme: /home/m147/.config/lsd/themes/custom, No such file or directory (os error 2).
probably others
Might want to fix it

Hi, the change is introduced in a newer version, please try the newly released v1.1.1


Add DOMAIN_NAME for networks

Resolves #32
Add the possibility to add a DOMAIN_NAME for containers in a network. To specify the network concerned by the domain name, add my_network_name: before value. Exemple :
version: '2'

networks:
  first:
    driver: bridge
  second:
    driver: bridge

services:
  web:
    image: php:7-apache
    environment:
      - "DOMAIN_NAME=first:web,first:www.web"
    networks:
      - first
      - second
  db:
    image: php:7-apache
    environment:
      - "DOMAIN_NAME=first:db,second:database"
    networks:
      - first
      - second
  mail:
    image: php:7-apache
    environment:
      - "DOMAIN_NAME=first:mail"
    networks:
      - first

will result in
## docker-hostmanager-start
<IP_ADDRESS> ... db.dockerhostmanager_first db
<IP_ADDRESS> ... db.dockerhostmanager_second database
<IP_ADDRESS> ... web.dockerhostmanager_first web www.web
<IP_ADDRESS> ... web.dockerhostmanager_second
<IP_ADDRESS> ... mail.dockerhostmanager_first mail
## docker-hostmanager-end

@iamluc What the state of this PR? I would love to see it merged :)

ping @Jean-Beru
Have you time to work on this ?

Not really but I will do an effort just fo you @iamluc  ;-)

any news about this pr ?

Note: it seems that using this patch does work, but you need to specify the network, like so:
  web:
    environment:
      - DOMAIN_NAME=default:foo.bar

Without the default, it did not work for me.

@iamluc what can we do to get this built and pushed to Docker Hub? :)

Hi @dkarlovi thanks for testing.
I'm gonna try to finish this PR with @Jean-Beru and @mykiwi in a few days.

@iamluc any news on this?

I discussed with @Jean-Beru about this PR, and the need is not clearly defined (IMHO).
Could you tell if those examples help you to do what you want to achieve ?
https://github.com/iamluc/docker-hostmanager/pull/39/files
Any help to improve the documentation is also welcomed :smile:

@iamluc hostmanager adds some non-human-friendly Docker hosts to /etc/hosts:
## docker-hostmanager-start
<IP_ADDRESS> reverse-proxy.traefik_loc 5b13bd735a62.traefik_loc traefik.traefik_loc
<IP_ADDRESS> rabbitmq.arm_default 6f60c1c9caa7.arm_default arm_rabbitmq_1.arm_default
## docker-hostmanager-end

The goal here is to allow define user-friendly one(s) so it can be accessed and configured as developer wants, so instead of the lines above we can get:
## docker-hostmanager-start
<IP_ADDRESS> traefic.loc reverse-proxy.traefik_loc 5b13bd735a62.traefik_loc traefik.traefik_loc
<IP_ADDRESS> rabbit.loc rabbitmq.arm_default 6f60c1c9caa7.arm_default arm_rabbitmq_1.arm_default
## docker-hostmanager-end

and use traefik.loc and rabbit.loc in the browser or other tools (always, even if project's directories and/or services would change name).

@Wirone
What I mean is that you already do that:
version: '2'

networks:
    default:
        external:
            name: loc

services:
    traefik:
        image: traefik

    rabbit:
        image: rabbit

Will have the same result.
Of course you need to create the loc network yourself.
But it can be automated. I personally do it in a Makefile (e.g. make start)

@iamluc

Of course you need to create the loc network yourself.

This makes the process a bit more complex in a cross-cutting team, as you must always ship additional tooling too. It might also lead to collisions (where multiple projects are trying to create the same external network).
Also, it doesn't allow you to have different / multiple / no suffixes if the need arises, if I understood correctly.

This makes the process a bit more complex in a cross-cutting team, as you must always ship additional tooling too

In fact, this is not needed anymore. Since compose file version 3.5, you can change the name of the network (https://docs.docker.com/compose/compose-file/#name-1).
networks:
    default:
        name: mynetwork

Also, it doesn't allow you to have different / multiple / no suffixes

You can have define multiple networks, it will result to multiple suffix.
version: '3.5'

networks:
    default:
        name: mynetwork
    backend:
        name: backend

services:
    app:
        image: myimage
        networks:
            - default
            - backend

Indeed a suffix is required, but I don't think it is a good idea to not have one.
A very important point to me is that with this system, hostnames are the same whether you are inside a container or outside from you host, because we do the same thing docker does.
If we allow changing the hostname with a label or an env var, it will works ONLY from the host

hostnames are the same whether you are inside a container or outside from you host, because we do the same thing docker does

That does sound neat. But, would it lead to problems?
For example, I wish to always use the suffix local for my projects. If I start up two separate projects at the same time, they'll both try to create redis.local even though I don't need Redis to be available at all.
Also, note that I'm using a actual valid FQDN for some of my projects to allow them to have valid Let's Encrypt certs (example, project.dev.company.com). This would mean my network name would have to be a very common TLD.

Hi @iamluc, have you decided how to proceed here?

IMHO, this feature is not needed so I will not work on it.
BUT, if someone wants to finish it, validates it is working and ensures it breaks nothing. I will agree to merge it.

We've been using this since I've pushed my own image with the PR merged. It does work as expected.

Yep, but it would be great if someone could reply to the comments:
https://github.com/iamluc/docker-hostmanager/pull/34/files#r86107703
https://github.com/iamluc/docker-hostmanager/pull/34/files#r184656291
And also document this feature in the README

Fair :+1: I try to get this done in the near future.

also, please change the target of the PR to the develop branch. This way I will test it for some days.

@dkarlovi @iamluc would be good to finish this somehow... is there something we can do to get this PR merged? Using Dalibor's fork is OK, but maintaining it (keeping up-to-date) isn't something easy I think. Additionally, Dalibor's fork does NOT contain changes in readme, so sharing link to the repo isn't enough (I just sent it to my colleague and he installed iamluc/docker-hostmanager because documentation states so...).

Gotta admit I've forgotten about my promise here. I'm using my image ever since I've pushed it, with my entire team (we've documented it in our project) so it's basically fire & forget currently.
@Wirone If you feel like you'd get additional value from this being merged, maybe you can take over the PR and get it merged?

@dkarlovi how is it possible technically? PR is from @Jean-Beru's branch, if we want to continue in this PR I would need to get access to that repo :thinking:? Or maybe you mean forking fork and creating new PR?

@dkarlovi how is it possible technically? PR is from @Jean-Beru's branch, if we want to continue in this PR I would need to get access to that repo :thinking:? Or maybe you mean forking fork and creating new PR?

You just fork this repo, add @Jean-Beru's repo as an additional remote and checkout the PR branch into your own. Any commit you make would of course be made to your own branch which gets a separate PR, but all the code is already there. Otherwise you'd need to do PRs against that repo which is inefficient.
There's some Github magic with refs which allows you to do it automagically, but I always forget how.

Yo, do we have to drop this one in favor of dkarlovi's one if this feature does not workas expected ? :open_mouth:


Using Complex in a hashset?

Hi All,
I am trying to use complex numbers (rustc v1.13.0, num v0.1.36, num-complex v0.1.35) in a HashSet, for example:
extern crate num;

use std::collections::HashSet;
use num::complex::*;

fn main() {
    let mut set = HashSet::new();
    let z = Complex::new(1, 1);
    set.insert(z);
}

and I get the following error;
error[E0277]: the trait bound `num::Complex<{integer}>: std::cmp::Eq` is not satisfied
 --> src/main.rs:8:19
  |
8 |     let mut set = HashSet::new();
  |                   ^^^^^^^^^^^^ trait `num::Complex<{integer}>: std::cmp::Eq` not satisfied
  |
  = note: required by `<std::collections::HashSet<T>>::new`

error[E0277]: the trait bound `num::Complex<{integer}>: std::cmp::Eq` is not satisfied
  --> src/main.rs:10:9
   |
10 |     set.insert(z);
   |         ^^^^^^ trait `num::Complex<{integer}>: std::cmp::Eq` not satisfied

I'm confused because in the documentation is says PartialEq is implemented for complex numbers, and doesn't that mean Eq is also implemented?  Any help here would be greatly appreciated!  Thanks.

PartialEq is implemented for complex numbers, and doesn't that mean Eq is also implemented?

No, PartialEq is a sort of weak equality, whereas Eq requires that it is reflexive, symmetric, and transitive.  So Eq implies PartialEq, but not the other way around.  Notably, floats are not Eq because NaN is always unequal, even to itself, so if you put a NaN in a HashSet, you'd never be able to find it again! :smile:
But I think we could support Eq just fine for integers, or any other base type that supports Eq.  It was probably just an oversight to not have this, since Complex is usually used with floats.

@cuviper Cool!  Thanks for explaining the distinction between the two.  I was using complex numbers to solve http://adventofcode.com/2016/day/1 so it's not exactly a piece of critical software ;).  Thanks for your help.


[WIP] Flye assembly

Hello,
Here is a new assembly tutorial for our training in Roscoff with @abretaud et al.
We're assembling PacBio data with Flye assembler and assessing the assembly quality.
Still in progress ...
Stéphanie

@stephanierobin @abretaud we updated Flye actually yesterday. Maybe that is relevant for you as well.

Yep that's cool, I'm updating on usegalaxy.fr, can you update the workflow @srobin?

Ok, this one's ready for merge now! (ping @hexylena if you're around)


Guidance Prompt for Explanation

This adds a feature to the unlocking guidance messages where we prompt students for an explanation of their answer. This allows the guidance researchers to understand why students are leaving certain answers. It can also be useful for students to be able to explain their answers.
The changes to provide the watchlist are tacked on to the existing guidance messages files and the collected responses goes into the unlocking message (just like the other guidance fields)
Some details:

There are treatment groups - this is handled by the old treatment code for the most part.
It asks only if the student answers is a watchlist or if they were randomly selected to answer their correct answer.

Ship date: Shipping before first CS61A Lab this week (if the .ok_guidance file is updated)

Let's rename --no-hints to --no-experiments (seems useful for other experiments too)
Limit to 1 hint per question set (instead of halving probability)
Let's tell students about --no-experiments when we prompt for an explanation (might need that in the hinting protocol too)

Hilfinger says that I can put all the students in the experiment. My IRB let's me do this too. So I do not want students to have the ability to opt out or turn off hints. I can see the need for it with some experiments, but not necessarily all of them.

I'm just worried that students will be annoyed by the experiment and complain, which has happened in the past (with the hinting experiment for instance). We won't tell students about the flag, and we'll give TAs a heads up about the experiment and let us know if there's a lot of complaints from students, and if we really really need to we can tell people about the flag. What do you think?

How hard would it be to implement it later? When/If there are complaints?
And which hinting experiment are you referring to? The one in WWPD by me or the one in homeworks by @Sumukh? I wasn't aware of a lot of complaints for the WWPD one.

It would probably take a day or so to implement and deploy it later, which will be too late since the lab is only a day and a half. I'm fairly certain student's won't find the flag on their own or think to use it.
I'm referring to Sumukh's hinting protocol. This experiment is more similar to that one rather than the WWPD one because it prompts students and could interrupt their workflow, rather than just printing messages.

Can I still request that the feature not be implemented? Allowing some of the students to opt out in the middle of a lab would compromise the quality of an entire lab for me. If it will only take a day or two to implement, if there are complaints there will be a few days before the next lab to do it.
And we've learned from the hw-hint experiment not to bother the students that much. Hence why it asks rarely.

Sure, Sumukh just commented it out for now

Going to be deployed as part of v1.9.0


Fix order of comments

Simple change. If comments have same created_unix time, use id for ordering.
Before:

After:

Codecov Report

Merging #2835 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2835      +/-   ##
==========================================
+ Coverage   26.84%   26.84%   +<.01%
==========================================
  Files          89       89
  Lines       17608    17609       +1
==========================================
+ Hits         4727     4728       +1
  Misses      12195    12195
  Partials      686      686

Impacted Files
Coverage Δ

models/issue_comment.go
30.6% <100%> (+0.16%)
: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 2e08f23...db83732. Read the comment docs.

LGTM

LGTM

@Morlinest please send a back port PR to v1.2


Could not setup with ghci version 7.8.3 in Docker container

Hi, I'm running Haskell with a docker container built from darinmorrison/haskell image with ghci version 7.8.3.
When I tried to run .bin/setup-koans as cited in the Readme file, I got the following issue:
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: HaskellKoans-0.1 (user goal)
trying: testloop-<IP_ADDRESS> (dependency of HaskellKoans-0.1)
next goal: unix (dependency of testloop-<IP_ADDRESS>)
rejecting: unix-<IP_ADDRESS>/installed-0d8..., <IP_ADDRESS>, <IP_ADDRESS> (conflict: testloop
=> unix>=<IP_ADDRESS> && <2.7)
rejecting: unix-<IP_ADDRESS>, <IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b...,
unix => base>=4.2 && <4.7)
rejecting: unix-<IP_ADDRESS>, <IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b...,
unix => base>=4.2 && <4.6)
rejecting: unix-<IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b..., unix =>
base>=4.2 && <4.5)
rejecting: unix-<IP_ADDRESS>, <IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b...,
unix => base>=4.2 && <4.4)
rejecting: unix-<IP_ADDRESS>, <IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b...,
unix => base>=4.2 && <4.3)
rejecting: unix-<IP_ADDRESS> (conflict: base==<IP_ADDRESS>/installed-e4b..., unix =>
base>=4.1 && <4.3)
trying: unix-<IP_ADDRESS>
next goal: hint (dependency of testloop-<IP_ADDRESS>)
rejecting: hint-<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS> (conflict: testloop => hint==0.3.*)
trying: hint-<IP_ADDRESS>
next goal: ghc (dependency of hint-<IP_ADDRESS>)
rejecting: ghc-7.8.3/installed-4df... (conflict: unix==<IP_ADDRESS>, ghc =>
unix==<IP_ADDRESS>/installed-0d8...)
Dependency tree exhaustively searched.

Note: when using a sandbox, all packages are required to have consistent
dependencies. Try reinstalling/unregistering the offending packages or
recreating the sandbox.
setup-koans: [ERROR]cabal install --only-dependencies failed.

Are I missing something that need to be setup first before setting up the koans?
Please help. Thank you in advance.

thanks worrel, had the same problem on ubuntu machine... and i had to clone testloop repo, make the patch in cabal config file manually. Why isn't this code
unix >= <IP_ADDRESS> && <= 2.8

part of the trunk?


Support Node.js and add to NPM

It would be nice to add support for using this package from Node.js by installing it using npm.
Instead of having pngtoy.fetch(url), which is currently based on a browser's XMLHttpRequest, offer a generic pngtoy.decode(buf, opts) where buf is either a Buffer (Node.js) or a Uint8Array (browser) (the current decode() does not accept a byte buffer of any kind).
Then you can have optional convenience methods pngtoy.loadFromUrl(url) and pngtoy.loadFromFile(path) that delegate to the decode() method.
Dependencies such as XMLHttpRequest and Canvas can be polyfilled in Node.js and only included in package.json instead of bower.json. This way the complicated core PNG parsing logic can be used on the frontend as well as on the backend.

This can be a nice workaround/solution to get node support. Thanks again @erhhung !

fetch() can now take ArrayBuffer or typed array view as argument in addition to URL types. There is partial node.js support (very rough and untested) but won't be added to NPM before in beta.
It won't use Buffer (with node.js) as that would require some rewriting, but it should not be a big issue since the main difference is buffer initialization (zeros the buffer with ArrayBuffer) unless you need a huge volume of files/users.


Configuring Ntfy with Nginx as a Reverse Proxy: Seeking Assistance

:question: Question

How can I configure Ntfy with Nginx as a reverse proxy? I've tried following the documentation on ntfy.sh but haven't been successful.
And one more thing, I added Cloudflare Tunnel access to the notification service from the public.

What part of the current nginx examples are you curious about? Most of what is contained in them are stock nginx items for proxying a web server while terminating SSL with all of the normal production level items covered.
Where are you having trouble? Do you see the ntfy service receiving traffic? I do know that starting the service standalone was more useful for debugging as it allowed me to see the trace and debug logs more easier

This is my setup:

Nginx version: nginx/1.24.0
Ntfy version: ntfy 2.7.0
OS version:

Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal

If I visit the domain...

This is happening.

A couple of small items first, for your server port 80, you are only going to redirect so you don't need to have any proxy_pass items in it. Those are really being ignored but it helps to be explicit with nginx configs IMO
If you are redirecting all of your port 80 to 443, you can take advantage of some nginx config items - the following tells nginx that the server block is the default for port 80 and that it matches all server names (that's the _ bit). It also uses a simpler "pass on the rest of the URI" method that avoids all of the args and query param junk
server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

Let me know if you have any questions about this change - it's what I have discovered works well when you get the dreaded too many redirects issue.

You can check it here: https://demo.ygi.li/.  + Cloudflare tunnel
Here is the configuration:
server {
    listen 80 default_server;
    server_name demos.ygi.li;
    return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  server_name demoss.ygi.li;

  ssl_session_timeout 1d;
  ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
  ssl_session_tickets off;
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-EC                                                                             DSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:                                                                             ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
  ssl_prefer_server_ciphers off;

  ssl_certificate /etc/ssl/cert.pem;
  ssl_certificate_key /etc/ssl/key.pem;

  location / {
    proxy_pass http://<IP_ADDRESS>:34567;
    proxy_http_version 1.1;

    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_connect_timeout 3m;
    proxy_send_timeout 3m;
    proxy_read_timeout 3m;

    client_max_body_size 0; # Stream request body to backend
  }
}

Still same error.

Feel free to join the Discord or Matrix chat if you're still experiencing issues.


python310Packages.spsdk: fix build by relaxing versions

Fixes https://github.com/NixOS/nixpkgs/issues/204333.
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
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.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
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

The check failures look related to the fact that this package depends on unfree packages.

Fixes https://github.com/NixOS/nixpkgs/issues/204333.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/1502

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

1 package failed to build:

python39Packages.spsdk

2 packages built:

pynitrokey
python310Packages.spsdk

For Python 3.9:
error: build of '/nix/store/7lcrygki8f6jlhljiimi13d2b4raak70-python3.9-spsdk-1.6.3.drv' on 'ssh://nix-community-build01' failed: builder for '/nix/store/7lcrygki8f6jlhljiimi13d2b4raak70-python3.9-spsdk-1.6.3.drv' failed with exit code 1;
       last 10 log lines:
       > configuring
       > no configure script, doing nothing
       > building
       > Executing setuptoolsBuildPhase
       > usage: nix_run_setup [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       >    or: nix_run_setup --help [cmd1 cmd2 ...]
       >    or: nix_run_setup --help-commands
       >    or: nix_run_setup cmd --help
       >
       > error: invalid command 'bdist_wheel'
       For full logs, run 'nix log /nix/store/7lcrygki8f6jlhljiimi13d2b4raak70-python3.9-spsdk-1.6.3.drv'.
error: builder for '/nix/store/7lcrygki8f6jlhljiimi13d2b4raak70-python3.9-spsdk-1.6.3.drv' failed with exit code 1;
       last 10 log lines:
       > configuring
       > no configure script, doing nothing
       > building
       > Executing setuptoolsBuildPhase
       > usage: nix_run_setup [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       >    or: nix_run_setup --help [cmd1 cmd2 ...]
       >    or: nix_run_setup --help-commands
       >    or: nix_run_setup cmd --help
       >
       > error: invalid command 'bdist_wheel'
       For full logs, run 'nix log /nix/store/7lcrygki8f6jlhljiimi13d2b4raak70-python3.9-spsdk-1.6.3.drv'.
error: 1 dependencies of derivation '/nix/store/bicqydc8as91f1g107lc4zvz4sgbk3ks-review-shell.drv' failed to build

Great catch! This is something I don't have a grasp on just yet, so I will ask for help on Matrix.

I tracked this down to because pyocd is packaged using python3.callPackage. Somehow, this corrupts the PYTHONPATH when building packages that depend upon it (like spsdk) using other versions of Python.
@sbruder would it be ok if I moved pyocd underneath python-modules?

I moved pyocd to python-modules and kept an alias to it in the top-level. From its GitHub README, it looks like it also provides a command line tool as an application.
@ofborg build python310Packages.spsdk python39Packages.spsdk

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

5 packages built:

pynitrokey
python310Packages.pyocd
python310Packages.spsdk
python39Packages.pyocd
python39Packages.spsdk


Marketwatch Doesn't Accept Login Request

The following error occurs when trying to sign in via the example "driver.py"
I haven't changed anything, this is merely the example code executing.
HTTPConnectionPool(host='id.marketwatch.com', port=80): Max retries exceeded with url: /auth/submitlogin.json (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000016A388216D8>: Failed to establish a new connection: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond',))
Any ideas?

It looks like MarketWatch has changed the endpoints on which users authenticate themselves.
I am no longer maintaining this project. But this project is licensed under the Apache license, so you're free to fork it and modify it as you'd like.


When more than one install XML is found, the one in the root of the ZIP should take precedence

I would imagine that most cases where more than one XML exists, the one in the root is more correct, so we should attempt to always use that one for install/upgrade.

I have committed a potential fix for this, though I haven't tested it yet. It's rather simplistic, but it should cover most cases. If someone could give it a try that'd be appreciated.

Heh, I just spotted the break in the code 🙄  So this isn't doing anything more than is already happening.
I'll have to take a closer look later.

@chrisdeeming I think getFileListing may be returning a weirdly sorted file list.

@chrisdeeming as near as I can tell; this should have only gotten the first valid XML file from the root directory. perhaps a version old beta version that was never upgraded?

After a bit of testing; I think I've figured it out.
If the XML file in the root folder is named correctly, it can come after the 1st folder. Basically RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST); lies.

I've semi-fixed this by adding path sorting in https://github.com/Xon/XenForo-AddOnInstaller/commit/8f3ab486cb5b7910c219ca0c4e82c3c402d2b97e but this is just string-based sorting, and really needs to be replaced by better iterating over the resultset so files are added first, and then directories.

1.3.5 tag/release has a stable file sort by directory for locating the XML file. Deployed into my live enviroment, and has handled a few add-ons already.

Good work. I was going to look into this last night myself - then my MacBook totally died. Back up and running today.
I'll leave it a day or two and then do the release at XF.com.

@chrisdeeming This isn't fully a breath 1st search so it may not work 100% as expected. I might fiddle with that before a 1.3.5 release


Added Twitch

Thanks for the submission. I've had a look and re-generated the current set and pushed it to master. Do you mind rebasing your changes on top of it ?

Thanks for the submission. I've had a look and re-generated the current set and pushed it to master. Do you mind rebasing your changes on top of it ?

Is there some quick and easy way to do that on github or do I have to do it using a local checkout? (I'm mostly a SVN guy so getting to know git is a bit of trial and error... hehe)

Is there some quick and easy way to do that on github or do I have to do it using a local checkout? (I'm mostly a SVN guy so getting to know git is a bit of trial and error... hehe)

oh, sorry for complicating this PR. I'm afraid you'll have to use a local checkout and run git fetch to get the latest upsteam objects and then git rebase origin/master from your local checkout. You'll probably get some merge conflicts that need to be solved.
Alternatively copy your changes over to a new fresh branch if it's too much hassle.

I created a new one... Look at it after the push and it looks much better.


README.md uses undefined method in sample code

The README.md gives a sample code illustrating how elektra could be used. One of the used methods is Value which is expected to return the value of a Key.
The Key does not provide such method and I have not seen any other method to fetch the value of a key.
We should introduce a Value method on the Key type.

I have now found that the method String is doing the job to return the value of a key as string. IMO the name is a bit misleading as I would expect String method on a Key to return the key name as string. I would suggest renaming it to Value, what do you think @kodebach @markus2330 ?

I have also noticed that the sample provided in the README.md sends a SIGSEGV and crashes. It seems that there is something wrong with the NewKey method.

The problem was that the README.md sample provided, states kdb.NewKey("user") which will result in an error as it can not create the key. This then leads to a SIGSEGV because no error handling was provided in the example and was not exiting before accessing a nil pointer.

The function is called String because it wraps the C function keyString. Which is called keyString, because it returns the keyvalue if it is a string value (and "(null)", "" or "(binary)" otherwise). I would keep this as-is for now. We are planning the change the C API see ElektraInitiative/libelektra#4853. Once we have agreed on a new C API (hopefully soon), we can update the Go to match that.
AFAIK the Go binding hasn't been maintained for a while. It is very possible that some things are broken. It's especially likely that examples are out-of-date. As you noticed, the README.md contains an old example. kdb.NewKey("user") (or in C keyNew ("user")) has been wrong for a while now. It should be kdb.NewKey("user:/").
I don't know what @markus2330 thinks, but IMO the best first step for working on this binding would be to reintegrate it into the main ElektraInitiative/libelektra repository. Since Go is very opinionated when it comes to modules and repository structure, it might be a bit difficult to do. But I think with replace in go.mod it should be possible to move the binding back into the main repo and have every thing run neatly in a single CI.

The function is called String because it wraps the C function keyString. Which is called keyString, because it returns the keyvalue if it is a string value (and "(null)", "" or "(binary)" otherwise). I would keep this as-is for now. We are planning the change the C API see Proposals for new API libelektra#4853. Once we have agreed on a new C API (hopefully soon), we can update the Go to match that.
AFAIK the Go binding hasn't been maintained for a while. It is very possible that some things are broken. It's especially likely that examples are out-of-date. As you noticed, the README.md contains an old example. kdb.NewKey("user") (or in C keyNew ("user")) has been wrong for a while now. It should be kdb.NewKey("user:/").

Ok, I see. Just wanted to point it out cause I was a bit confused when I saw it and at first glance didn't know what it was doing. But I will then revert the renaming.
The PR should now contains a sample with error handling and a fixed version and now does not crash.
I primarily started working in this repo because of the use case for globbing (spec plugin) I'm trying to write in Go.

I don't know what @markus2330 thinks, but IMO the best first step for working on this binding would be to reintegrate it into the main ElektraInitiative/libelektra repository

Yes, I would very much appreciate if it can be integrated in the main repository. This would solve several problems.


Sites: freebitco.in

Hi, just as a reminder...
betting still does not work as mentioned here: https://github.com/Seuntjie900/DiceBot/issues/81
have a good day!

Hello.  In bot version <IP_ADDRESS>, a bug for Freebitco.in is fixed???

Hi, this is marked as closed, but still getting same error in <IP_ADDRESS> and <IP_ADDRESS>


move field type from base QuestObjective to implemented classes

Currently the name of a resource is in the base class and because implementations can use it for different resource types we cannot add a resource selector attribute. Adding a field in the implemented classes would fix that.

This work is now in progress.
Selectors have been added for everything except:
-Kill objectives (because they can reference a faction or character)
-Use Interactable objectives because they can reference an interactable option or an interactable, both of which can just exist in a scene with no related Scriptable Objects.

This work is now complete in the latest master


Configureable constant missing from ABI when only used in the storage block

An example of this from a contract with a configureable constant DEPLOYER that is only used in the storage block:
configurable {
    DEPLOYER: b256 = 0x09c0b2d1a486c439a87bcba6b46a7a1a23f3897cc83a94521a96da5c23bc58db,
}

storage {
    deployer: Ownership = Ownership::initialized(Identity::Address(Address::from(DEPLOYER))),
...

It appears that this results in the configureable not being included in the ABI, as seen in more detail in the forum post below.
https://forum.fuel.network/t/no-configurable-field-in-abi-pyth-oracle-contract/3397

are there any updates, frens?

The issue here is that configurables not being used are stripped from the ABI. In this case this configurable is only being used as the initializer of a storage, which is evaluated at compile time.
The same thing would happen, for example, in:
const a = DEPLOYER;
log(a);

In the end this configurable is not configuring anything, and because of that, my suggestion is to turn this into a warning: "this configurable is not being used and it is not available in the ABI", or something like that.

I created another issue to improve the diagnostic in this case. Can I close this as this is not a bug?

Closed in favour of #5261


Tunnel connection dropping every ~2 minutes

The problem
I just installed this addon to use my HA setup from outside the internal network. I set up the remote tunnel with settings inside Cloudflare dashboard. When I start (or restart) the addon, the subdomains I'm using work perfectly, however after less than 5 minutes, they stop working and I get this error
503 Service Unavailable
The origin has been unregistered from Argo Tunnel

The error goes away in about 10 minutes and the cycle repeats. I can force the subdomains to work earlier by restarting the addon.
What version of Cloudflared has the issue?
2.0.9
What was the last working version of Cloudflared?
No response
What type of installation are you running?
Home Assistant Supervised
Add-on YAML Configuration
No response
Anything in the logs that might be useful for us?
2022-08-15T15:43:39Z INF Unregistered tunnel connection connIndex=3
2022-08-15T15:43:39Z WRN Failed to serve quic connection error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:43:39Z WRN Serve tunnel error error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:43:39Z INF Retrying connection in up to 1s seconds connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z WRN If this log occurs persistently, and cloudflared is unable to connect to Cloudflare Network with `quic` protocol, then most likely your machine/network is getting its egress UDP to port 7844 (or others) blocked or dropped. Make sure to allow egress connectivity as per https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ports-and-ips/
If you are using private routing to this Tunnel, then UDP (and Private DNS Resolution) will not work unless your cloudflared can connect with Cloudflare Network with `quic`. connIndex=2 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z INF Switching to fallback protocol http2 connIndex=2 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z WRN Connection terminated error="timeout: no recent network activity" connIndex=2
2022-08-15T15:43:41Z WRN If this log occurs persistently, and cloudflared is unable to connect to Cloudflare Network with `quic` protocol, then most likely your machine/network is getting its egress UDP to port 7844 (or others) blocked or dropped. Make sure to allow egress connectivity as per https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ports-and-ips/
If you are using private routing to this Tunnel, then UDP (and Private DNS Resolution) will not work unless your cloudflared can connect with Cloudflare Network with `quic`. connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z INF Switching to fallback protocol http2 connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z WRN Connection terminated error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=3
2022-08-15T15:43:41Z WRN If this log occurs persistently, and cloudflared is unable to connect to Cloudflare Network with `quic` protocol, then most likely your machine/network is getting its egress UDP to port 7844 (or others) blocked or dropped. Make sure to allow egress connectivity as per https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ports-and-ips/
If you are using private routing to this Tunnel, then UDP (and Private DNS Resolution) will not work unless your cloudflared can connect with Cloudflare Network with `quic`. connIndex=1 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z INF Switching to fallback protocol http2 connIndex=1 ip=<IP_ADDRESS>
2022-08-15T15:43:41Z WRN Connection terminated error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=1
2022-08-15T15:43:46Z INF Lost connection with the edge connIndex=0
2022-08-15T15:43:46Z INF Unregistered tunnel connection connIndex=0
2022-08-15T15:43:46Z WRN Serve tunnel error error="connection with edge closed" connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:43:46Z INF Retrying connection in up to 1s seconds connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:43:47Z INF Changing protocol to quic connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:43:47Z ERR Connection terminated error="connection with edge closed" connIndex=0
[17:43:47] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:43:47] WARNING: Connection attempt 1/24 before restart.
[17:43:52] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:43:52] WARNING: Connection attempt 2/24 before restart.
[17:43:58] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:43:58] WARNING: Connection attempt 3/24 before restart.
[17:44:03] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:03] WARNING: Connection attempt 4/24 before restart.
[17:44:08] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:08] WARNING: Connection attempt 5/24 before restart.
[17:44:13] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:13] WARNING: Connection attempt 6/24 before restart.
[17:44:19] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:19] WARNING: Connection attempt 7/24 before restart.
[17:44:24] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:24] WARNING: Connection attempt 8/24 before restart.
[17:44:29] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:29] WARNING: Connection attempt 9/24 before restart.
[17:44:34] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:44:34] WARNING: Connection attempt 10/24 before restart.
2022-08-15T15:44:35Z INF Connection 858a7d7d-8792-4bae-bbef-712ce40a0742 registered connIndex=2 ip=<IP_ADDRESS> location=AMS
2022-08-15T15:44:35Z INF Connection f2d9b8ef-1157-47ed-b03e-a2ff3873cb6d registered connIndex=0 ip=<IP_ADDRESS> location=AMS
2022-08-15T15:44:35Z INF Connection b6b7ed58-622d-4954-a671-1423bd26acb3 registered connIndex=3 ip=<IP_ADDRESS> location=AMS
2022-08-15T15:44:35Z INF Connection 7b8e5d8d-0d45-4a02-813c-c333e26cb3d2 registered connIndex=1 ip=<IP_ADDRESS> location=AMS
2022-08-15T15:45:10Z INF Unregistered tunnel connection connIndex=0
2022-08-15T15:45:10Z WRN Failed to serve quic connection error="timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:45:10Z WRN Serve tunnel error error="timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:45:10Z INF Retrying connection in up to 1s seconds connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:45:10Z WRN If this log occurs persistently, and cloudflared is unable to connect to Cloudflare Network with `quic` protocol, then most likely your machine/network is getting its egress UDP to port 7844 (or others) blocked or dropped. Make sure to allow egress connectivity as per https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/configuration/ports-and-ips/
If you are using private routing to this Tunnel, then UDP (and Private DNS Resolution) will not work unless your cloudflared can connect with Cloudflare Network with `quic`. connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:45:10Z INF Switching to fallback protocol http2 connIndex=0 ip=<IP_ADDRESS>
2022-08-15T15:45:10Z WRN Connection terminated error="timeout: no recent network activity" connIndex=0
2022-08-15T15:45:15Z INF Lost connection with the edge connIndex=1
2022-08-15T15:45:15Z INF Unregistered tunnel connection connIndex=1
2022-08-15T15:45:15Z WRN Serve tunnel error error="connection with edge closed" connIndex=1 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Retrying connection in up to 1s seconds connIndex=1 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Lost connection with the edge connIndex=3
2022-08-15T15:45:15Z WRN Serve tunnel error error="connection with edge closed" connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Retrying connection in up to 1s seconds connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Unregistered tunnel connection connIndex=3
2022-08-15T15:45:15Z INF Lost connection with the edge connIndex=2
2022-08-15T15:45:15Z WRN Serve tunnel error error="connection with edge closed" connIndex=2 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Retrying connection in up to 1s seconds connIndex=2 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z INF Unregistered tunnel connection connIndex=2
2022-08-15T15:45:15Z INF Changing protocol to quic connIndex=3 ip=<IP_ADDRESS>
2022-08-15T15:45:15Z ERR Connection terminated error="connection with edge closed" connIndex=3
[17:45:16] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:16] WARNING: Connection attempt 1/24 before restart.
2022-08-15T15:45:16Z INF Changing protocol to quic connIndex=1 ip=<IP_ADDRESS>
2022-08-15T15:45:16Z ERR Connection terminated error="connection with edge closed" connIndex=1
2022-08-15T15:45:17Z INF Changing protocol to quic connIndex=2 ip=<IP_ADDRESS>
2022-08-15T15:45:17Z ERR Connection terminated error="connection with edge closed" connIndex=2
[17:45:21] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:21] WARNING: Connection attempt 2/24 before restart.
[17:45:26] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:26] WARNING: Connection attempt 3/24 before restart.
[17:45:31] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:31] WARNING: Connection attempt 4/24 before restart.
[17:45:36] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:36] WARNING: Connection attempt 5/24 before restart.
[17:45:41] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:41] WARNING: Connection attempt 6/24 before restart.
[17:45:47] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:47] WARNING: Connection attempt 7/24 before restart.
[17:45:52] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:52] WARNING: Connection attempt 8/24 before restart.
[17:45:57] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:45:57] WARNING: Connection attempt 9/24 before restart.
[17:46:02] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:46:02] WARNING: Connection attempt 10/24 before restart.
[17:46:07] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:46:07] WARNING: Connection attempt 11/24 before restart.
[17:46:13] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:46:13] WARNING: Connection attempt 12/24 before restart.
[17:46:18] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:46:18] WARNING: Connection attempt 13/24 before restart.
[17:46:23] WARNING: Connection unavailable, rechecking in 5 seconds.
[17:46:24] WARNING: Connection attempt 14/24 before restart.

Steps to reproduce the issue
Install addon and configure a remote tunnel
subdomains stop working after a while
Additional information
No response

I have the same issue, starting with 2.0.8

@haberda thanks! I don't have a backup of this addon as I just installed it. How do I move it from 2.0.9 to 2.0.7?

You can make a backup, download the tar backup, open the archive and edit backup.json. You can just change the version and save it back to the tar file. When you restore it will download the old version. I'd make an extra copy of the backup though just in case.

I don't have much experience with restoring from backups, I only use the Google Drive Backup addon to do full snapshot backups. In this case should I make and work with a backup of the addon only or the full snapshot?

With 2.0.8 we updated Cloudflared to 2022.8.0, this might be a bug in that release. I just released 2.0.11 of this add-on where Cloudflared 2022.8.1 is included. I suggest to update to the newest version. If the problem persists, please post your logs with the loglegel "debug" here, so we can have a look and fix it.

Thanks! I just updated it, will let you know in a few hours.

Happening again:
[14:58:53] INFO: Starting Cloudflared Healthcheck for Home-Assistant add-on.
2022-08-16T12:58:54Z INF Starting tunnel tunnelID=cd23a693-ab24-4335-aca6-acae1a8ec266
2022-08-16T12:58:54Z INF Cannot determine default configuration path. No file [config.yml config.yaml] in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp /etc/cloudflared /usr/local/etc/cloudflared]
2022-08-16T12:58:54Z INF Version 2022.8.1
2022-08-16T12:58:54Z INF GOOS: linux, GOVersion: go1.18.5, GoArch: arm
2022-08-16T12:58:54Z INF Settings: map[loglevel:info metrics:<IP_ADDRESS>:36500 no-autoupdate:true token:*****]
2022-08-16T12:58:54Z INF Generated Connector ID: cc791566-9b7b-4476-936f-c230ed28dc6a
2022-08-16T12:58:54Z INF Will be fetching remotely managed configuration from Cloudflare API. Defaulting to protocol: quic
2022-08-16T12:58:54Z INF Initial protocol quic
2022-08-16T12:58:54Z INF Starting metrics server on [::]:36500/metrics
2022/08/16 14:58:54 failed to sufficiently increase receive buffer size (was: 176 kiB, wanted: 2048 kiB, got: 352 kiB). See https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size for details.
2022-08-16T12:58:54Z INF Connection 6c49c153-2090-45bc-b3b8-898f3ceb3e7c registered connIndex=0 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:58:54Z INF Updated to new configuration config="{\"ingress\":[{\"hostname\":\"rpi.pratyushvashisht.com\",\"originRequest\":{},\"service\":\"http://<IP_ADDRESS>:9090\"},{\"hostname\":\"piportainer.pratyushvashisht.com\",\"originRequest\":{},\"service\":\"https://<IP_ADDRESS>:9443\"},{\"hostname\":\"home.pratyushvashisht.com\",\"originRequest\":{},\"service\":\"http://<IP_ADDRESS>:8123\"},{\"originRequest\":{},\"service\":\"http_status:404\"}],\"warp-routing\":{\"enabled\":false}}" version=5
[14:58:54] DEBUG: Metrics status: 200
[14:58:54] DEBUG: Connection attempt: 0
2022-08-16T12:58:55Z INF Connection 6304d9da-98c1-4636-8ca8-e1c5d5e20a56 registered connIndex=1 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:58:55Z INF Connection d24b3b71-e6cf-4004-ab2c-625ea920d06b registered connIndex=2 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:58:57Z INF Connection 3f607864-2ea3-46bd-b78e-542bf8740e3f registered connIndex=3 ip=<IP_ADDRESS> location=AMS
[14:58:59] DEBUG: Metrics status: 200
[14:58:59] DEBUG: Connection attempt: 0
[14:59:05] DEBUG: Metrics status: 200
[14:59:05] DEBUG: Connection attempt: 0
[14:59:10] DEBUG: Metrics status: 200
[14:59:10] DEBUG: Connection attempt: 0
[14:59:15] DEBUG: Metrics status: 200
[14:59:15] DEBUG: Connection attempt: 0
[14:59:20] DEBUG: Metrics status: 200
[14:59:20] DEBUG: Connection attempt: 0
2022-08-16T12:59:20Z INF Unregistered tunnel connection connIndex=0
2022-08-16T12:59:20Z WRN Failed to serve quic connection error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-16T12:59:20Z WRN Serve tunnel error error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-16T12:59:20Z INF Retrying connection in up to 1s seconds connIndex=0 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z INF Unregistered tunnel connection connIndex=3
2022-08-16T12:59:21Z WRN Failed to serve quic connection error="timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z WRN Serve tunnel error error="timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z INF Retrying connection in up to 1s seconds connIndex=3 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z WRN Connection terminated error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=0
2022-08-16T12:59:21Z INF Unregistered tunnel connection connIndex=1
2022-08-16T12:59:21Z WRN Failed to serve quic connection error="timeout: no recent network activity" connIndex=1 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z WRN Serve tunnel error error="timeout: no recent network activity" connIndex=1 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z INF Retrying connection in up to 1s seconds connIndex=1 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z WRN Connection terminated error="timeout: no recent network activity" connIndex=1
2022-08-16T12:59:21Z INF Unregistered tunnel connection connIndex=2
2022-08-16T12:59:21Z ERR Failed to serve quic connection error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=2 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z ERR Serve tunnel error error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=2 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z INF Retrying connection in up to 1s seconds connIndex=2 ip=<IP_ADDRESS>
2022-08-16T12:59:21Z ERR Connection terminated error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=2
2022-08-16T12:59:22Z ERR Connection terminated error="timeout: no recent network activity" connIndex=3
2022-08-16T12:59:23Z INF Connection 30da6211-9b7a-4f0e-86d6-4fffd653494d registered connIndex=2 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:59:23Z INF Connection 49bf1be2-d7aa-4edf-bad6-b888c3f8dc5b registered connIndex=0 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:59:23Z INF Connection fdfeb187-21fe-4f57-8605-b920126ec857 registered connIndex=1 ip=<IP_ADDRESS> location=AMS
2022-08-16T12:59:23Z INF Connection 58b669ee-3a33-495f-be52-80175f48c622 registered connIndex=3 ip=<IP_ADDRESS> location=AMS
[14:59:25] DEBUG: Metrics status: 200
[14:59:25] DEBUG: Connection attempt: 0
[14:59:30] DEBUG: Metrics status: 200
[14:59:30] DEBUG: Connection attempt: 0
[14:59:36] DEBUG: Metrics status: 200
[14:59:36] DEBUG: Connection attempt: 0
[14:59:41] DEBUG: Metrics status: 200
[14:59:41] DEBUG: Connection attempt: 0
[14:59:46] DEBUG: Metrics status: 200
[14:59:46] DEBUG: Connection attempt: 0
[14:59:51] DEBUG: Metrics status: 200
[14:59:51] DEBUG: Connection attempt: 0
[14:59:56] DEBUG: Metrics status: 200
[14:59:56] DEBUG: Connection attempt: 0
[15:00:01] DEBUG: Metrics status: 200
[15:00:01] DEBUG: Connection attempt: 0
2022-08-16T13:00:05Z INF Unregistered tunnel connection connIndex=3
2022-08-16T13:00:05Z WRN Failed to serve quic connection error="timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-16T13:00:05Z WRN Serve tunnel error error="timeout: no recent network activity" connIndex=3 ip=<IP_ADDRESS>
2022-08-16T13:00:05Z INF Retrying connection in up to 1s seconds connIndex=3 ip=<IP_ADDRESS>
2022-08-16T13:00:05Z INF Unregistered tunnel connection connIndex=0
2022-08-16T13:00:05Z WRN Failed to serve quic connection error="timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-16T13:00:05Z WRN Serve tunnel error error="timeout: no recent network activity" connIndex=0 ip=<IP_ADDRESS>
2022-08-16T13:00:05Z INF Retrying connection in up to 1s seconds connIndex=0 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z INF Unregistered tunnel connection connIndex=1
2022-08-16T13:00:06Z WRN Failed to serve quic connection error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=1 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z WRN Connection terminated error="timeout: no recent network activity" connIndex=3
2022-08-16T13:00:06Z WRN Serve tunnel error error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=1 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z INF Retrying connection in up to 1s seconds connIndex=1 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z INF Unregistered tunnel connection connIndex=2
2022-08-16T13:00:06Z ERR Failed to serve quic connection error="timeout: no recent network activity" connIndex=2 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z ERR Serve tunnel error error="timeout: no recent network activity" connIndex=2 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z INF Retrying connection in up to 1s seconds connIndex=2 ip=<IP_ADDRESS>
2022-08-16T13:00:06Z ERR Connection terminated error="failed to accept QUIC stream: timeout: no recent network activity" connIndex=1
2022-08-16T13:00:06Z ERR Connection terminated error="timeout: no recent network activity" connIndex=0
[15:00:07] DEBUG: Connection unavailable, rechecking in 5 seconds.
[15:00:07] DEBUG: Connection attempt 1/24 before restart.
[15:00:07] DEBUG: Metrics status: 503
[15:00:07] DEBUG: Connection attempt: 1
2022-08-16T13:00:08Z ERR Connection terminated error="timeout: no recent network activity" connIndex=2
[15:00:12] DEBUG: Connection unavailable, rechecking in 5 seconds.
[15:00:12] DEBUG: Connection attempt 2/24 before restart.
[15:00:12] DEBUG: Metrics status: 503
[15:00:12] DEBUG: Connection attempt: 2
[15:00:17] WARNING: Connection unavailable, rechecking in 5 seconds.
[15:00:17] WARNING: Connection attempt 3/24 before restart.
[15:00:17] DEBUG: Metrics status: 503
[15:00:17] DEBUG: Connection attempt: 3
[15:00:22] WARNING: Connection unavailable, rechecking in 5 seconds.
[15:00:22] WARNING: Connection attempt 4/24 before restart.
[15:00:22] DEBUG: Metrics status: 503
[15:00:22] DEBUG: Connection attempt: 4
[15:00:28] WARNING: Connection unavailable, rechecking in 5 seconds.
[15:00:28] WARNING: Connection attempt 5/24 before restart.
[15:00:28] DEBUG: Metrics status: 503
[15:00:28] DEBUG: Connection attempt: 5
[15:00:33] WARNING: Connection unavailable, rechecking in 5 seconds.
[15:00:33] WARNING: Connection attempt 6/24 before restart.
[15:00:33] DEBUG: Metrics status: 503
[15:00:33] DEBUG: Connection attempt: 6
[15:00:38] WARNING: Connection unavailable, rechecking in 5 seconds.
[15:00:38] WARNING: Connection attempt 7/24 before restart.
[15:00:38] DEBUG: Metrics status: 503
[15:00:38] DEBUG: Connection attempt: 7
2022-08-16T13:00:38Z INF Connection 88cb2f66-5fa9-4507-9dd2-573f57b661d3 registered connIndex=2 ip=<IP_ADDRESS> location=AMS
2022-08-16T13:00:38Z INF Connection 042cbefa-7191-4b0d-9843-5b7a3b7330df registered connIndex=1 ip=<IP_ADDRESS> location=AMS
2022-08-16T13:00:38Z INF Connection 4cec6031-69be-42b0-99ef-66161644c1ec registered connIndex=3 ip=<IP_ADDRESS> location=AMS
2022-08-16T13:00:38Z INF Connection 999fc492-e34f-4a7a-bb7c-54a3811703a5 registered connIndex=0 ip=<IP_ADDRESS> location=AMS

Also, as expected, it start working less than 30 seconds after I posted the above comment.

@prvashisht  Just to be clear, does this mean 2.0.11 works for you? I haven't tried it yet.

@haberda , no it's not. It's still on the cycle of restarting every 5 minutes, and then working for less than 2 minutes before it repeats. I'll update to 2.0.12 and check.

no it's not. It's still on the cycle of restarting every 5 minutes, and then working for less than 2 minutes before it repeats.

This is certainly because of watchdog definition, as the addon I maintain kept working regardless of cloudflared version.
https://github.com/home-assistant/supervisor/blob/main/supervisor/addons/addon.py#L539
It should work as is, but it seems it depends on the user environment, for example, whether the user is using SSL internally even thought add-on recomends to remove it.

Maybe changing watchdog to [PROTO:ssl]://[HOST]:36500/healthcheck.
Or follow the prerequisites and remove the internal SSL.

I think that if this was a watchdog problem, watchdog would restart the whole add-on, the log shows that only the connection is dropped and then reconnected after a while.

Maybe changing watchdog to [PROTO:ssl]://[HOST]:36500/healthcheck.
This is defined in the add-on service and is always http.

I read a few strange issues related to HA supervised installations. Please keep in mind that only Debian is supported. If possible try to migrate to HA OS installation.
If this is related to cloudflared directly, you should open an issue upstream.

@prvashisht 2.0.11 fixed the issue for me. However, I recently also moved my HASS installation to HASSOS from Supervised, so maybe that was it.
BTW if you are running supervised, maybe you should run Cloudflared directly in docker. Cloudflare publishes a container.

@w35l3y I removed duckdns completely using the first few steps in this post. I also removed letsencrypt and certbot from my pi. Is there anything else I need to look for regarding SSL settings?
@haberda , thanks I'll have a look at the container. I'm not very well versed with networking though.

The issue hasn't resolved, but I've stopped trying to make cloudflare work. Going to use tailscale for now. It also allows me to access any other services running on the same pi.
Will close this issue, thanks a lot folks for chiming in to help.

FYI with Supervisor 2022.08.04 the watchdog got an update: https://github.com/home-assistant/supervisor/pull/3815


hyperclair and docker trusted registry ssl certs

Hi,
Im trying to get clair/hyperclair working for my docker trusted registry with ssl enabled.  I can login and pull images via hyperclair to the registry, but not push to clair:
./hyperclair-linux-amd64 pull dxxxxxxxxxxxxxxxxx/v2/xxxx/tools-xxxxx:1.0.1
Image: https://dxxxxxxxxxxxxxxxxx/v2/xxxx/tools-xxxxx:1.0.1
8 layers found
➜ sha256:7af61bd827110a81260ec127fe18a285f5c2b81ecff1193c99e75e4c4ddaeeb8
➜ sha256:49450d74f78203be950a7d8b6c8eec62b8a5852ea745c111c11409c64160c4a0
➜ sha256:3cecefdee658faed37324c640e5372502e0b740d1a147ebe9fe668960ba02d43
➜ sha256:d5bd2b88ef7ed138b5649ac86802a3592243eabf203e0d0a11bc835dc4c87a44
➜ sha256:5e9546c8f903e29b1d28d44d5dd558af02d8eadfae9a76e7c77a97fa51f11358
➜ sha256:75c879e7f7e54022c1f95735a93f67cb9bcc83fb80fa457ba1ff79e8046dfa85
➜ sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4
➜ sha256:0653bff3c5cf23727e0ebceae7a28f7534ab64ed13966e080e4c9b035176c401
./hyperclair-linux-amd64 push dxxxxxxxxxxxxxxxxx/v2/xxxx/tools-xxxxx:1.0.1
2016-10-07 16:01:30.729731 I | http: proxy error: x509: certificate signed by unknown authority
client quit unexpectedly
FATA[0000] pushing image "dxxxxxxxxxxxxxxxxx/v2/xxxx/tools-xxxxx:1.0.1": 400 - {"Error":{"Message":"could not find layer"}}
Clair logs:
2016-10-07 05:01:30.730181 W | detectors: could not download layer: got status code 500, expected 2XX
2016-10-07 05:01:30.731005 E | worker: layer sha256:7af61bd827110a81260ec127fe18a285f5c2b81ecff1193c99e75e4c4ddaeeb8: failed to extract data from http://<IP_ADDRESS>:50352/v2/xxxx/tools-xxxxx:/blo bs/sha256:7af61bd827110a81260ec127fe18a285f5c2b81ecff1193c99e75e4c4ddaeeb8: could not find layer
2016-10-07 05:01:30.732137 I | api: <IP_ADDRESS>:60874 "POST /v1/layers" 400 (242.396269ms)
Where do I add the CA authority?
Cheers,

Follow up there : https://github.com/jgsqware/clairctl/issues/16


How to get the decoder part in an Autoencoder?

import numpy as np
np.random.seed(1337)  # for reproducibility
from keras.datasets import mnist
from keras.models import Model
from keras.layers import Dense, Input
import matplotlib.pyplot as plt
download the mnist to the path '~/.keras/datasets/' if it is the first time to be called
X shape (60,000 28x28), y shape (10,000, )
(x_train, _), (x_test, y_test) = mnist.load_data()
data pre-processing
x_train = x_train.astype('float32') / 255. - 0.5       # minmax_normalized
x_test = x_test.astype('float32') / 255. - 0.5         # minmax_normalized
x_train = x_train.reshape((x_train.shape[0], -1))
x_test = x_test.reshape((x_test.shape[0], -1))
print(x_train.shape)
print(x_test.shape)
latent_dim = 2
input_img = Input(shape=(784,))
encoder layers
encoded = Dense(128, activation='relu')(input_img)
encoded = Dense(64, activation='relu')(encoded)
encoded = Dense(10, activation='relu')(encoded)
encoder_output = Dense(latent_dim)(encoded)
decoder layers
decoded = Dense(10, activation='relu')(encoder_output)
decoded = Dense(64, activation='relu')(decoded)
decoded = Dense(128, activation='relu')(decoded)
decoded = Dense(784, activation='tanh')(decoded)
construct the autoencoder model
autoencoder = Model(input=input_img, output=decoded)
construct the encoder model for plotting
encoder = Model(input=input_img, output=encoder_output)
decoder_input = Input(shape=(latent_dim,))
decoder = Model(input=decoder_input, output=decoded)
construct the decoder model for plotting
latent_inputs = Input(shape=(latent_dim,))
decoder = Model(input=latent_inputs,output=decoded4)
compile autoencoder
autoencoder.compile(optimizer='adam', loss='mse')
#training
autoencoder.fit(x_train, x_train,
epochs=2,
batch_size=256,
shuffle=True)
I want to have the decoder network only, but it keeps occurring this error.
How should i change the code to only obtain the decoder network?
ValueError: Graph disconnected: cannot obtain value for tensor Tensor("input_1:0", shape=(None, 784), dtype=float32) at layer "input_1". The following previous layers were accessed without issue: []

@Vsilent01
Moving this issue to closed status as there has been no activity, in case you still face the error please create a new issue.


feat: sample of how to do unmodifiable part of dependent

All these samples would be even better with a description of what they're supposed to be doing so that people can get an idea before looking at the code.

All these samples would be even better with a description of what they're supposed to be doing so that people can get an idea before looking at the code.

Yep, should be probably a separate issue, either we could generate a summary page, or just link the test from the docs and better describe them there too.
But kind of an index + generated description would be beneficial.


add new link for Constitution checker tool

This is a tool my team developed to be added to the GovTools. I would like to have this listed on the docs so people can find it easier.

Since the URL isnt using a specific domain
is this tool intended to be hosted here permanently?

If the URL does happen to change could we make another PR request to update it?


add xposedscript

Because I see it can create frida script, so why not try to create xposed which  is also a excellent tool. so I did it. But I have a problem about I can't use the keyboard to use it. Maybe you can add it. Thank you! jadx is good tools~

Looks alright, but I have some more changes I would like to suggests.
I'm quite new to Github, so I'm not sure how to add code to an existing PR. can you help me?

Looks alright, but I have some more changes I would like to suggests. I'm quite new to Github, so I'm not sure how to add code to an existing PR. can you help me?

sorry. I don't know how to add code in existing PR. It is a little embarrassing.

sorry. I don't know how to add code in existing PR. It is a little embarrassing.

If you push new commits to your master branch (the branch linked to this PR) they will automatically appear in this pull request. A GitHub pull request does not include code or changes, it only mentions the GIT source branch and the destination branch, and the "file changes" are then calculated based on the current content of both branches.
Therefore most users create a separate branch for a PR.

@YenKoc I just open a PR in you fork

@YenKoc I just opened a PR in you fork
I pull request the newest versions. Thanks!

@oriori1703 this is a little weird to have PR inside another PR. Please don't do this again 😕
Depending on the size of changes you wish to apply, it is better to make a new PR after this one got merged.
Anyway, everything is already mixed, so I will merge it because changes are good.
Also, for the record, I can push changes into a branch linked to PR (if owner not forbid this).
For any small changes, I can take commit from anyone's fork and move it into PR, so there is no need to open PR in the fork.

@oriori1703 and looks like you open another PR in @YenKoc fork ;(
Let not disturb @YenKoc. I will move your commit into this PR (so you can close that PR).

@oriori1703 and looks like you open another PR in @YenKoc fork ;( Let not disturb @YenKoc. I will move your commit into this PR (so you can close that PR).

@skylot Sure, sorry for making a mess with all of the PRs.
I will know for next time.

Thanks everyone to your work! :tada: