GraphQL from Lambda - routines:ssl3_get_record:wrong version with reproduction steps

Describe the bug
Calling GraphQL API from a Lambda with IAM authentication.
Calling API_REPRODUCE_GRAPHQLAPIENDPOINTOUTPUT raises error:
GraphQLError: write EPROTO<PHONE_NUMBER>26400:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332
This is true when signing headers with AWS.Signers.V4 and one of the following libraries:

fetch
fetch with custom HttpsAgent with all secureProtocol SSH_METHODS
https.request (from https://docs.amplify.aws/cli/function#signing-a-request-from-lambda)
@apollo/client (v3) with Apollo HttpLink
aws-amplify (I will provide this as an example as it may highlight some other things in amplify-js)

Note: aws-mobile-appsync-sdk-js actually works, which uses apollo-client (v2), but I have not been able to decipher apollo to figure out what they do differently in the TLS and maybe Proxy settings.
To Reproduce
Steps to reproduce the behavior:
amplify add api
? Please select from one of the below mentioned services: **GraphQL**
? Provide API name: **reproduce**
? Choose the default authorization type for the API **IAM**
? Do you want to configure advanced settings for the GraphQL API **No, I am done.**
? Do you have an annotated GraphQL schema? **No**
? Choose a schema template: **Single object with fields (e.g., “Todo” with ID, name, description)**
? Do you want to edit the schema now? **Yes**

type Todo @model @auth(rules: [{ provider: iam, allow: private }]) {
  id: ID!
  name: String!
  description: String
}

type Response {
  items: [Todo]!
  error: String
}

type Mutation {
  mutateWithIAM(name: String!, description: String): Response! @function(name: "mutateWithIAM-${env}")
}

amplify add function
? Select which capability you want to add: **Lambda layer (shared code & resource used across functions)**
? Provide a name for your Lambda layer: **mutateWithIAMLayer**
? Select up to 2 compatible runtimes: **NodeJS**
? The current AWS account will always have access to this layer. **<enter>**

amplify add function
? Select which capability you want to add: **Lambda function (serverless function)**
? Provide a friendly name for your resource to be used as a label for this category in the project: **mutateWithIAM**
? Provide the AWS Lambda function name: **mutateWithIAM**
? Choose the runtime that you want to use: **NodeJS**
? Choose the function template that you want to use: **Hello World**
? Do you want to access other resources in this project from your Lambda function? **Yes**
? Select the category **api**
? Select the operations you want to permit for reproduce **create, read**
? Do you want to invoke this function on a recurring schedule? **No**
? Do you want to configure Lambda layers for this function? **Yes**
? Provide existing layers or select layers in this project to access from this function (pick up to 5): mutateWithIAMLayer
? Select a version for mutateWithIAMLayer: 1
? Do you want to edit the local lambda function now? **Yes**

/* Amplify Params - DO NOT EDIT
	API_REPRODUCE_GRAPHQLAPIENDPOINTOUTPUT
	API_REPRODUCE_GRAPHQLAPIIDOUTPUT
	ENV
	REGION
Amplify Params - DO NOT EDIT */

const AWS = require("aws-sdk");
const { v4: uuidv4 } = require("uuid");
const { Amplify, API, graphqlOperation } = require("aws-amplify");
const API_ENDPOINT = process.env.API_REPRODUCE_GRAPHQLAPIENDPOINTOUTPUT;
const REGION = process.env.REGION;
const createTodo = /* GraphQL */ `
  mutation CreateTodo(
    $input: CreateTodoInput!
    $condition: ModelTodoConditionInput
  ) {
    createTodo(input: $input, condition: $condition) {
      id
      name
      description
      createdAt
      updatedAt
    }
  }
`;

Amplify.Logger.LOG_LEVEL = "DEBUG";

exports.handler = async (event) => {
  try {
    Amplify.configure({
      aws_project_region: REGION,
      aws_appsync_graphqlEndpoint: API_ENDPOINT,
      aws_appsync_region: REGION,
      graphql_endpoint: API_ENDPOINT, // disables _headerBasedAuth in GraphQLAPI.ts
      graphql_headers: () => {
        const options = new AWS.HttpRequest(API_ENDPOINT, REGION);
        options.headers.host = API_ENDPOINT;
        options.headers['content-type'] = 'application/json; charset=UTF-8';
        options.headers.accept = '*/*';

        new AWS.Signers.V4(options, "appsync", true).addAuthorization(
          AWS.config.credentials,
          AWS.util.date.getDate()
        );

        // Providing self signed Authorization header, stops Auth from trying to do its thing with identity & user pools
        return options.headers;
      },
    });

    const todo = {
      id: uuidv4(),
      name: event.arguments.name,
      description: event.arguments.description,
    };

    await API.graphql(
      graphqlOperation(createTodo, {
        input: todo,
      })
    );

    return { items: [todo] };
  } catch (err) {
    return { items: [], error: err.message };
  }
};

cd amplify/backend/function/mutateWithIAMLayer/lib/nodejs
npm i aws-amplify uuid
cd -
amplify push
? Do you want to update code for your updated GraphQL API **No**

Go to AppSync applications Queries in AWS Console and run mutation:
mutation MutateWithIAM {
  mutateWithIAM(name: "Mutating", description: "with IAM through Lambda") {
    items {
      id
      name
      description
    }
    error
  }
}

Go to lambda function and find debug logs and find the routines:ssl3_get_record:wrong version error.
Expected behavior
I expect await API.graphql(graphqlOperation(createTodo, { input: todo })); to resolve without ssl3 errors.
Code Snippet
/* Amplify Params - DO NOT EDIT
	API_REPRODUCE_GRAPHQLAPIENDPOINTOUTPUT
	API_REPRODUCE_GRAPHQLAPIIDOUTPUT
	ENV
	REGION
Amplify Params - DO NOT EDIT */

const AWS = require("aws-sdk");
const { v4: uuidv4 } = require("uuid");
const { Amplify, API, graphqlOperation } = require("aws-amplify");
const API_ENDPOINT = process.env.API_REPRODUCE_GRAPHQLAPIENDPOINTOUTPUT;
const REGION = process.env.REGION;
const createTodo = /* GraphQL */ `
  mutation CreateTodo(
    $input: CreateTodoInput!
    $condition: ModelTodoConditionInput
  ) {
    createTodo(input: $input, condition: $condition) {
      id
      name
      description
      createdAt
      updatedAt
    }
  }
`;

Amplify.Logger.LOG_LEVEL = "DEBUG";

exports.handler = async (event) => {
  try {
    Amplify.configure({
      aws_project_region: REGION,
      aws_appsync_graphqlEndpoint: API_ENDPOINT,
      aws_appsync_region: REGION,
      graphql_endpoint: API_ENDPOINT, // disables _headerBasedAuth in GraphQLAPI.ts
      graphql_headers: () => {
        const options = new AWS.HttpRequest(API_ENDPOINT, REGION);
        options.headers.host = API_ENDPOINT;
        options.headers['content-type'] = 'application/json; charset=UTF-8';
        options.headers.accept = '*/*';

        new AWS.Signers.V4(options, "appsync", true).addAuthorization(
          AWS.config.credentials,
          AWS.util.date.getDate()
        );

        // Providing self signed Authorization header, stops Auth from trying to do its thing with identity & user pools
        return options.headers;
      },
    });

    const todo = {
      id: uuidv4(),
      name: event.arguments.name,
      description: event.arguments.description,
    };

    await API.graphql(
      graphqlOperation(createTodo, {
        input: todo,
      })
    );

    return { items: [todo] };
  } catch (err) {
    return { items: [], error: err.message };
  }
};

Screenshots
If applicable, add screenshots to help explain your problem.
What is Configured?

Environment

  System:
    OS: Linux 5.4 Ubuntu 20.04 LTS (Focal Fossa)
    CPU: (12) x64 Intel(R) Core(TM) i7-10710U CPU @ 1.10GHz
    Memory: 50.11 GB / 62.54 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 12.18.0 - ~/.nvm/versions/node/v12.18.0/bin/node
    npm: 6.14.4 - ~/.nvm/versions/node/v12.18.0/bin/npm
  Browsers:
    Chrome: 84.0.4147.89
    Firefox: 79.0
  npmPackages:
    aws-amplify: ^3.0.22 => 3.0.22
    uuid: ^8.3.0 => 8.3.0
  npmGlobalPackages:
    @aws-amplify/cli: 4.26.0
    npm: 6.14.4

Smartphone (please complete the following information):
Additional context
You can turn on the debug mode to provide more info for us by setting window.LOG_LEVEL = 'DEBUG'; in your app.

Ok, managed to solve it for all request methods after a lot of tinkering and digging :sweat_smile:
There was a couple of problems.

request.headers.host should be the hostname, i.e. without https:// and /graphql, e.g. xxxxxxxxxxxxxxxxxxxxxxxxxxx.appsync-api.eu-central-1.amazonaws.com
request.body has to be signed exactly as it is being sent off to the appsync endpoint


Added severities & filters. Fixes #220

@asachs01 looks good to me! thanks for the quick turnaround!


[base-controller] Require metadata for optional state properties

The StateMetadata type in BaseControllerV2 was intended to require each state property to have associated metadata. However, currently it doesn't require metadata for optional fields. This is problematic because all top-level state properties are expected to have metadata, and will throw an error at runtime if it's missing.
We should update the StateMetadata type to require metadata for all properties, including optional properties.

Wrap in the utility type called "Required".

Here is an example of a bug fix for a bug that would have been caught by this improvement to the type: https://github.com/MetaMask/core/pull/4245


Fails if cookies or data storage are disabled in the browser

I've tested this in both FF and Chrome.
We need to test to see if localStorage is available - similar to how the ngStorage module does it https://github.com/gsklee/ngStorage/blob/master/ngStorage.js#L21
Simply testing for the existence of localStorage returns
Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document. in chrome and SecurityError: The operation is insecure..
Both of these errors can halt operations, crashing your app.

This was fixed ages ago, closing


Add cyrillic chars

Please see the Eclipse Process and ECA-related parts before committing.

cannot accept this without ECA being signed

btw the ECA itself is at https://www.eclipse.org/legal/ECA.php


black: 22.3.0 -> 22.6.0

Description of changes

Things done

Built on platform(s)

[ ] 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

[ ] Fits CONTRIBUTING.md.

If this is causing more than a few rebuilds we need to take a look at why and e.g. remove black from checkPhases.

Result of nixpkgs-review pr 179455 run on x86_64-darwin 1

7 packages failed to build:

deltachat-desktop
noto-fonts-emoji
python310Packages.mypy-boto3-builder
python310Packages.nototools
python310Packages.python-lsp-black
python39Packages.nototools
python39Packages.python-lsp-black

17 packages built:

black (python310Packages.black)
black-macchiato (python310Packages.black-macchiato)
cwltool
python310Packages.diagrams
python310Packages.graphql-server-core
python310Packages.papermill
python310Packages.ptpython
python310Packages.pytest-black
python310Packages.schema-salad
python39Packages.black
python39Packages.black-macchiato
python39Packages.diagrams
python39Packages.graphql-server-core
python39Packages.papermill
python39Packages.ptpython
python39Packages.pytest-black
python39Packages.schema-salad

Looks like everything falls apart in skia-pathops on:
Command: python /private/tmp/nix-build-python3.10-skia-pathops-0.7.2.drv-0/skia-pathops-0.7.2/src/cpp/skia-builder/skia/gn/find_xcode_sysroot.py macosx
Returned 1.
stderr:

Traceback (most recent call last):
  File "/private/tmp/nix-build-python3.10-skia-pathops-0.7.2.drv-0/skia-pathops-0.7.2/src/cpp/skia-builder/skia/gn/find_xcode_sysroot.py", line 15, in <module>
    print(subprocess.check_output(['xcrun', '--sdk', sdk, '--show-sdk-path']).decode())
  File "/nix/store/aqz4sk2zbi9gfcqgkmhyv5p258mkzvng-python3-3.10.5/lib/python3.10/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/nix/store/aqz4sk2zbi9gfcqgkmhyv5p258mkzvng-python3-3.10.5/lib/python3.10/subprocess.py", line 501, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/nix/store/aqz4sk2zbi9gfcqgkmhyv5p258mkzvng-python3-3.10.5/lib/python3.10/subprocess.py", line 969, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/nix/store/aqz4sk2zbi9gfcqgkmhyv5p258mkzvng-python3-3.10.5/lib/python3.10/subprocess.py", line 1845, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'xcrun'

which is not related to this PR.


[1.18.2] Chances not working for create:sandpaper_polishing

<recipetype:create:sandpaper_polishing>.addRecipe("scratch_card_results", <item:city_modernities:dollars_bag> % 25, <item:lottery:lottery>, 200);
Instead of erroring, it gives the recipe 100 % everytime.
item:lottery:lottery might sound wrong but it's right, I just named the mod weirdly.

Sandpaper polishing does not support chances, all of create's json recipes can accept a chanced input however, which is why it accepts it in the script, even though it doesn't work.


Userscripts

Trello card
See Bugzilla #1494135 - Add a pinned page action option to allow extensions to prevent their page actions from appearing in the urlbar by default
Acceptance Criteria

[x] Documentation for this feature added to the appropriate section of the web extensions documentation for page action.
[x] Information added to the Firefox 64 Release Notes as appropriate

Marking this completed as per the bug.


cilium: prep work for nat46/64 k8s integration

(See commit desc, taken out Cartesian prod generation for now from pr/k8s-nat46x64 branch.)

/test

/test


Make/find docker image with ROS2 which can work on Jetson-nano 4Gb

Dear Professor,
I have finished the issue that was provided.
I have created Dockerfile that installs ROS2 on a base image compatible with the Jetson Nano.
In this Dockerfile, I have used osrf/ros as a base image, ROS2 Foxy Fitzroy which can be pulled by
"docker pull osrf/ros:foxy-desktop"

The rest of the code can be found in the attached docker file.
Dockerfile.docx

Can you build Jetson-nano image for qemu? in order to have full no-hardware solution?

I am not completely sure Professor but I would love to try. I let you know by evening if I need any help . I'll also make the pull request as soon as possible.


Added program in c for printing unique elements in an array

Hi @Dabohemianstarlord,
Could you try to fix the comments?

@ming-tsai  can i review it

@ming-tsai  can i review it

Sorry @Arsenic-ATG is reviewing

@ming-tsai  can i review it

Sorry @Arsenic-ATG is reviewing

ok no problem
next time


Normalise 'yes' values to true

Instead of "yes" use true where the value can only be true or false. Generally false is implied by omission. Hopefully this makes the intent clearer, as boolean values can only be true or false, whereas string values could potentially have many values.
There are potentially memory and time savings for anyone decoding the tile also, as boolean values are generally compact compared with strings.
Notes:

For the moment, I've left oneway as-is. It seems that we reverse the linestring for oneway=reverse, so this could be a candidate for booleanification too.
I've collapsed all the values for surveillance down to a boolean. Do we want to expand them again, if so, is it worth re-writing the yes value to unknown?

Connects to #778.
@rmarianski could you review, please?
/cc @nvkelso does this look good - it's a bit of a bigger "breaking change" than the ticket originally specified.

:+1:

I'm fine with expanded scope, great work!
Looking at the updated tests, the tile content is True for GeoJSON and TopoJSON. But we now say true in the docs. Should that be True instead?
What does MVT store the True as? Why does the Mapbox documentation say they convert booleans to 1 and 0 values instead of passing thru the boolean?
@bcamper how would the Tangram handle the new boolean values? We've been saying things like intermittent: yes and intermittent: true in scene files. Does Tangram correctly distinguish between true (meaning the property is present with any value) and True (the value of the property as a boolean)?

The value is True for Python, but true in JSON and YAML (also and confusingly, yes, True, on and various other values in YAML - so we'll stick to JSON). I've tried to be consistent and use the lower-case true in the docs, as that should be what's actually present in the (Geo/Topo)JSON.
MVT can store booleans natively, and I can't find a reference to converting that to 0 or 1, although it's possible that might be happening in later processing stages. Do you have a link to where in the Mapbox docs it says about booleans, please?
For intermittent and the is_* road properties, using true should behave as it did before - those values should only be present when they're true. However, fee and surveillance can be true, false or unspecified, so we might have to revert those if we can't match them in the Tangram style.

Thanks for the background :)
@bcamper needs to weigh in on Tangram side of things to determine if we can use true to distinguish the general presence of a key with any value (really testing null, not null of any key:*)  versus the feature boolean property value of key:true.
I see MVT boolean reference on: https://www.mapbox.com/vector-tiles/mapbox-streets-v7/#layer-reference
Boolean fields

Some fields represent a boolean condition; the value may be either true or false.
To keep the vector tiles compact these fields may be stored as integers,
where 0 = false and 1 = true.

I'm not quite sure what to make of that. Possibly it's referring to the fact that protobuf stores booleans as a wire type 0 varint under the hood? Or perhaps it can be more compact if there are other 0s and 1s in the file, as the layer values dictionary will store only one value for 0/false instead of two?
On the list of things which are making our tiles large, it is probably not top of the list, though.


Install SPATIAL Error

Just installed DuckDB v0.9.2 via Homebrew on my Mac and attempted to install the Spatial extension via the CLI.
Seeing the following:
D install SPATIAL;
Error: HTTP Error: Failed to download extension "SPATIAL" at URL "http://extensions.duckdb.org/v0.9.2/osx_arm64/SPATIAL.duckdb_extension.gz"

Going to the URL above, I'm seeing:
<Error>
AccessDenied
<Message>Access Denied</Message>
<RequestId>Y5ESN48E183S7ZZE</RequestId>
<HostId>yCrKLaIStgH5ailBSDeyy3zm6d0q7HMRwmxBceLwcgl+4DQw950hCwhFcj9cCX2aif+cUQm97Go=</HostId>
</Error>

Hi! It seems like extension names are case sensitive in the INSTALL command. e.g. it seems to be available on: http://extensions.duckdb.org/v0.9.2/osx_arm64/spatial.duckdb_extension.gz
Could you try running this instead?:
INSTALL spatial;
LOAD spatial

Hi @Maxxen !
I'm seeing the following but I'm suspecting it is due to my attempt last night to use the 0.9.1 extension that I downloaded and installed. Is there a way for me to uninstall that and try again with the 0.9.2 extension you referenced above?
D INSTALL spatial;
D LOAD spatial;
Error: Invalid Input Error: Extension "/Users/cpd/.duckdb/extensions/v0.9.2/osx_arm64/spatial.duckdb_extension" version (v0.9.1) does not match DuckDB version (v0.9.2)

I downloaded the 0.9.2 extension and did the following which didn't change anything.
D INSTALL 'spatial.duckdb_extension';
D LOAD spatial;
Error: Invalid Input Error: Extension "/Users/cpd/.duckdb/extensions/v0.9.2/osx_arm64/spatial.duckdb_extension" version (v0.9.1) does not match DuckDB version (v0.9.2)

I also tried a brew uninstall duckdb and brew install duckdb but it still seems to have awareness of the extension.

Extensions are stored in your duckdb home directory (~/.duckdb/), but I thunk you can also force a reinstall with:
FORCE INSTALL spatial

Turned out I needed to delete the extensions/ directory. FORCE INSTALL didn't do the trick on its own. But thankfully I've got it successfully installed now. Appreciate your prompt replies @Maxxen! Thank you!

I'm seeing a similar issue with python
con.install_extension("spatial")

HTTPException: HTTP Error: Failed to download extension "spatial" at URL "http://extensions.duckdb.org/v0.9.2/linux_arm64_gcc4/spatial.duckdb_extension.gz"
Extension "spatial" is an existing extension.

Hi! As of now, we don't support linux_arm64_gcc4. In the future we may though.


Add support for specific minor version of the API.

The current version doesn't work if you configure it with a minor version (e.g. "2.4"). This fix handles minor versions properly by: 1) choosing the correct router version and 2) add the X-Api-Version header to the API requests.

Replacing with PR #22.


Sign-in with Spotify

[x] Setup auth flow with Spotify
[x] Add barebones navbar with Angular material
[x] Display basic user info after login (will remove with addition of future features

Remaining TODOs:

[ ] handle presence of cookie (currently have to clear cookie to display user info)
[ ] fix login button styling
[ ] middleware / interceptors


⚠ Bofrost.be has degraded performance

In b3d1a55, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1072 ms

Resolved: Bofrost.be performance has improved in ee1cf7d.


definst at the end of app name

Is it possible to add some configuration parameter to ignore '_definst_' at the end of app?
I`d like to have possibility to watch stream via two URL (with '_definst_' and without) after setting this parameter to True.
nginx-rtmp added support for _definst_:
http://nginx-rtmp.blogspot.com/2013/09/support-for-definst-in-nginx-rtmp-module.html

To support AMS/FMS?

@winlinvip To support Wowza Media Server(Wowza Streaming Engine).
We wish to replace wowza with srs. Wowza has logic with default instance (_definst_) and it leads to mismatch.

No, we would like to publish stream with specified app (not only _definst_).
For example:
We publish the stream to the URL rtmp://testhost:8888/app1/stream1 and we can watch the published stream by both links: rtmp://testhost:8888/app1/stream1 and rtmp://testhost:8888/app1/_definst_/stream1
Another case:
We publish the stream to the url rtmp://testhost:8888/app1/_definst_/stream1 and can watch by both links: rtmp://testhost:8888/app1/_definst_/stream1 and rtmp://testhost:8888/app1/stream1


Why is JS in binary in V0.10.0?

Am I tripping or is JS inscribing as binary? This is with new JS inscriptions I inscribed on regtest with v0.10.0

It could maybe be ord-0.10.0-aarch64-apple-darwin.tar.gz Having issues on my M2 macbook.
I built from version 0.10.0 from source seems fine.
Used the binary on linux seems fine.
See if anyone else can replicate this on the release binary on apple silicon.

I just tried inscribe a JS file on an apple silicon mac on regtest, and the preview looks good. Can you double-check that the file contains JS?

@casey Your right it wasn't JS lmao. I guess I found a new bug in OPM Pr I just merged. Closing issue.

Phew! Glad it was a false alarm.


hetzner-k3s unable to ssh to masters, but openssh client can connect no problem

Basically what the title says. I upgraded hetzner-k3s to 2.0.8 and tried to create a new cluster. It creates the master nodes but then can't ssh to them. When I manually ssh it works just fine.
[Instance fixsaas-master3] Instance status: off
[Instance fixsaas-master3] Powering on instance (attempt 1)
[Instance fixsaas-master2] Waiting for instance to be powered on...
[Instance fixsaas-master3] Waiting for instance to be powered on...
[Instance fixsaas-master1] Instance status: off
[Instance fixsaas-master1] Powering on instance (attempt 1)
[Instance fixsaas-master1] Waiting for instance to be powered on...
[Instance fixsaas-master3] Instance status: running
[Instance fixsaas-master2] Instance status: running
[Instance fixsaas-master1] Instance status: running
[Instance fixsaas-master3] Waiting for successful ssh connectivity with instance fixsaas-master3...
[Instance fixsaas-master2] Waiting for successful ssh connectivity with instance fixsaas-master2...
[Instance fixsaas-master1] Waiting for successful ssh connectivity with instance fixsaas-master1...
[Instance fixsaas-master2] Instance fixsaas-master2 already exists, skipping create
[Instance fixsaas-master3] Instance fixsaas-master3 already exists, skipping create
[Instance fixsaas-master2] Instance status: running
[Instance fixsaas-master1] Instance fixsaas-master1 already exists, skipping create
[Instance fixsaas-master3] Instance status: running
[Instance fixsaas-master1] Instance status: running
[Instance fixsaas-master2] Waiting for successful ssh connectivity with instance fixsaas-master2...
[Instance fixsaas-master3] Waiting for successful ssh connectivity with instance fixsaas-master3...
[Instance fixsaas-master1] Waiting for successful ssh connectivity with instance fixsaas-master1...
[Instance fixsaas-master2] Instance fixsaas-master2 already exists, skipping create
[Instance fixsaas-master2] Instance status: running
[Instance fixsaas-master1] Instance fixsaas-master1 already exists, skipping create
[Instance fixsaas-master3] Instance fixsaas-master3 already exists, skipping create
[Instance fixsaas-master1] Instance status: running
[Instance fixsaas-master3] Instance status: running
[Instance fixsaas-master2] Waiting for successful ssh connectivity with instance fixsaas-master2...
[Instance fixsaas-master1] Waiting for successful ssh connectivity with instance fixsaas-master1...
[Instance fixsaas-master3] Waiting for successful ssh connectivity with instance fixsaas-master3...
Error creating instance: timeout after 00:01:00
Instance creation for fixsaas-master2 failed. Try rerunning the create command.
Error creating instance: timeout after 00:01:00
Instance creation for fixsaas-master1 failed. Try rerunning the create command.
Error creating instance: timeout after 00:01:00
Instance creation for fixsaas-master3 failed. Try rerunning the create command.
^C

It's never able to ssh to the master nodes, but if I just manually try I can connect to all of them no problem:
minimi:conf lukas$ ssh -i id_ecdsa<EMAIL_ADDRESS>The authenticity of host '<IP_ADDRESS> (<IP_ADDRESS>)' can't be established.
ED25519 key fingerprint is SHA256:OH8Fmrk1IHcqbuFaMntaL+fvgm3cUPD0rz5SL91ltnk.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '<IP_ADDRESS>' (ED25519) to the list of known hosts.
X11 forwarding request failed on channel 0
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-41-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Mon Sep  9 12:43:06 PM UTC 2024

  System load:  1.19              Processes:             143
  Usage of /:   2.4% of 74.79GB   Users logged in:       0
  Memory usage: 20%               IPv4 address for eth0: <IP_ADDRESS>
  Swap usage:   0%                IPv6 address for eth0: 2a01:4f8:1c17:5c0e::1

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status

root@fixsaas-master1:~#
logout
Connection to <IP_ADDRESS> closed.

My config:
minimi:conf lukas$ cat hetzner-k3s.yaml
hetzner_token: xxx
cluster_name: fixsaas
kubeconfig_path: /Users/lukas/fixstrap/bcdr/conf/hetzner-k3s.kubeconfig
k3s_version: v1.29.6+k3s2
public_ssh_key_path: /Users/lukas/fixstrap/bcdr/conf/id_ecdsa.pub
private_ssh_key_path: /Users/lukas/fixstrap/bcdr/conf/id_ecdsa
use_ssh_agent: false
ssh_allowed_networks:
- 93.240.xxx/32
- 90.187.xxx/32
api_allowed_networks:
- 93.240.xxx/32
- 90.187.xxx/32
private_network_subnet: <IP_ADDRESS>/16
schedule_workloads_on_masters: false
cluster_cidr: <IP_ADDRESS>/16
service_cidr: <IP_ADDRESS>/16
cluster_dns: <IP_ADDRESS>
additional_packages:
- ntp
- lynis
- clamav
- clamav-daemon
- chkrootkit
- unattended-upgrades
- update-notifier-common
- nfs-common
- cryptsetup
- libpam-tmpdir
- apt-listchanges
- apt-show-versions
post_create_commands:
- sysctl -w 'vm.max_map_count=1024000'
- echo 'vm.max_map_count=1024000' | tee /etc/sysctl.d/60-arangodb.conf
- echo 'unattended-upgrades unattended-upgrades/enable_auto_updates boolean true'
  | debconf-set-selections
- DEBIAN_FRONTEND=noninteractive dpkg-reconfigure --priority=low unattended-upgrades
- systemctl enable clamav-freshclam
- systemctl start clamav-freshclam
- systemctl enable clamav-daemon
- systemctl start clamav-daemon
- systemctl enable unattended-upgrades
- systemctl start unattended-upgrades
- systemctl enable ntp
- systemctl start ntp
- apt-get update
- apt-get upgrade -y
- apt-get autoremove -y
- apt-get autoclean -y
cloud_controller_manager_manifest_url: https://github.com/hetznercloud/hcloud-cloud-controller-manager/releases/download/v1.20.0/ccm-networks.yaml
csi_driver_manifest_url: https://raw.githubusercontent.com/hetznercloud/csi-driver/v2.8.0/deploy/kubernetes/hcloud-csi.yml
system_upgrade_controller_manifest_url: https://raw.githubusercontent.com/rancher/system-upgrade-controller/v0.13.4/manifests/system-upgrade-controller.yaml
masters_pool:
  instance_type: ccx13
  instance_count: 3
  location: fsn1
worker_node_pools:
- name: workers
  instance_type: ccx33
  instance_count: 5
  location: fsn1
  labels:
  - key: node-role.fixcloud.io
    value: worker
- name: db
  instance_type: ccx33
  instance_count: 2
  location: fsn1
  labels:
  - key: node-role.fixcloud.io
    value: database
  taints:
  - key: node-role.fixcloud.io/dedicated
    value: database:NoSchedule
- name: jobs
  instance_type: ccx23
  instance_count: 2
  location: fsn1
  labels:
  - key: node-role.fixcloud.io
    value: jobs
  taints:
  - key: node-role.fixcloud.io/dedicated
    value: jobs:NoSchedule

Any ideas what might go wrong?

I'm just looking at the 2.x release notes and seeing that my config doesn't match the expected format at all. Yet the tool didn't complain about any of it which seems odd.
I didn't plan on upgrading to 2.x but it seems 1.1.5 stopped working on network creation (throws a 400 json format error).
Ironically if I first let it create the network and servers with 2.0.8 and then abort and downgrade to 1.1.5 everything works fine and it sshs to the nodes and deploys k3s.
FWIW, this is the log after unsuccessfully running 2.0.8 and then downgrading to 1.1.5:
=== Creating infrastructure resources ===
Network already exists, skipping.
Creating firewall...done.
SSH key already exists, skipping.
Placement group fixsaas-masters already exists, skipping.
Creating placement group fixsaas-workers-1...done.
Creating placement group fixsaas-db-1...done.
Creating placement group fixsaas-jobs-1...done.
Creating server fixsaas-ccx13-master2...
Creating server fixsaas-ccx13-master3...
Creating server fixsaas-ccx33-pool-workers-worker3...
Creating server fixsaas-ccx33-pool-workers-worker2...
Creating server fixsaas-ccx33-pool-workers-worker4...
Creating server fixsaas-ccx13-master1...
Creating server fixsaas-ccx33-pool-workers-worker1...
Creating server fixsaas-ccx33-pool-db-worker1...
Creating server fixsaas-ccx33-pool-db-worker2...

Server fixsaas-ccx13-master1 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx13-master1...
Server fixsaas-ccx13-master2 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx13-master2...
Server fixsaas-ccx13-master3 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx13-master3...
Server fixsaas-ccx33-pool-workers-worker1 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-workers-worker1...
Server fixsaas-ccx33-pool-workers-worker2 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-workers-worker2...
Server fixsaas-ccx33-pool-workers-worker3 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-workers-worker3...
Server fixsaas-ccx33-pool-workers-worker4 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-workers-worker4...
Server fixsaas-ccx33-pool-workers-worker5 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-workers-worker5...
Server fixsaas-ccx33-pool-db-worker1 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-db-worker1...
Server fixsaas-ccx33-pool-db-worker2 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx33-pool-db-worker2...
...server fixsaas-ccx13-master3 is now up.
...server fixsaas-ccx13-master2 is now up.
...server fixsaas-ccx13-master1 is now up.
...server fixsaas-ccx33-pool-workers-worker1 is now up.
...server fixsaas-ccx33-pool-workers-worker2 is now up.
...server fixsaas-ccx33-pool-db-worker1 is now up.
...server fixsaas-ccx33-pool-workers-worker3 is now up.
...server fixsaas-ccx33-pool-workers-worker5 is now up.
...server fixsaas-ccx33-pool-db-worker2 is now up.
...server fixsaas-ccx33-pool-workers-worker4 is now up.
Creating server fixsaas-ccx23-pool-jobs-worker1...
Creating server fixsaas-ccx23-pool-jobs-worker2...
...server fixsaas-ccx23-pool-jobs-worker1 created.
...server fixsaas-ccx23-pool-jobs-worker2 created.
Server fixsaas-ccx23-pool-jobs-worker1 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx23-pool-jobs-worker1...
Server fixsaas-ccx23-pool-jobs-worker2 already exists, skipping.
Waiting for successful ssh connectivity with server fixsaas-ccx23-pool-jobs-worker2...
...server fixsaas-ccx23-pool-jobs-worker1 is now up.
...server fixsaas-ccx23-pool-jobs-worker2 is now up.
Creating load balancer for API server...done.

=== Setting up Kubernetes ===
Deploying k3s to first master fixsaas-ccx13-master1...
[INFO]  Using v1.29.6+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.29.6+k3s2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.29.6+k3s2/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
[INFO]  systemd: Starting k3s
Waiting for the control plane to be ready...

So I'd now assume that between 1.1.5 and 2.0.8 there's a regression in the way ssh works.

I'm just looking at the 2.x release notes and seeing that my config doesn't match the expected format at all. Yet the tool didn't complain about any of it which seems odd.

The tool expects a YAML file and most settings have default values, so if it doesn't find those settings in your config it will just use the default values, and only complain if required settings that you must specify are missing.

I didn't plan on upgrading to 2.x but it seems 1.1.5 stopped working on network creation (throws a 400 json format error).

There have been some changes on the Hetzner side that broke the API client functionality for some things, but I didn't want to maintain the 1.x branch anymore since I can only work on this project in my free time.

Ironically if I first let it create the network and servers with 2.0.8 and then abort and downgrade to 1.1.5 everything works fine and it sshs to the nodes and deploys k3s.
So I'd now assume that between 1.1.5 and 2.0.8 there's a regression in the way ssh works.

Not that I am aware of and you are the first person to report this issue since releasing 2.x. Can you share your current, updated configuration?

I am having the same issue
I modified the ssh.cr file to print the error and is giving me the following:
Error: ERR -18: Username/PublicKey combination invalid

And this is my current configuration:
cluster_name: s2-k3s-mail-cluster
kubeconfig_path: ./kubeconfig
k3s_version: v1.30.3+k3s1

networking:
  ssh:
    port: 22
    use_agent: false
    public_key_path: "~/.ssh/id_rsa.pub"
    private_key_path: "~/.ssh/id_rsa"
  allowed_networks:
    ssh:
      - <IP_ADDRESS>/0
    api:
      - <IP_ADDRESS>/0
  public_networks:
    ipv4: true
    ipv6: true
  private_network:
    enabled : true
    subnet: <IP_ADDRESS>/16
    existing_network_name: ""
  cni:
    enabled: true
    encryption: false
    mode: flannel

manifest:
  system_upgrade_controller_deployment_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.4/system-upgrade-controller.yaml"
  system_upgrade_controller_crd_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.4/crd.yaml"

datastore:
  mode: etcd

schedule_workloads_on_masters: false

image: debian-12

#### Cluster server groups ####
masters_pool:
  instance_type: cx22
  instance_count: 3
  location: nbg1

worker_node_pools:
- name: small-mail-pool
  instance_type: cx32
  instance_count: 3
  location: nbg1
  labels:
    - key: "node-type"
      value: "small-mail"

additional_packages:
  - open-iscsi
post_create_commands:
  - apt update
  - apt upgrade -y
  - apt autoremove -y

I am having the same issue
I modified the ssh.cr file to print the error and is giving me the following:
Error: ERR -18: Username/PublicKey combination invalid

And this is my current configuration:
cluster_name: s2-k3s-mail-cluster
kubeconfig_path: ./kubeconfig
k3s_version: v1.30.3+k3s1

networking:
  ssh:
    port: 22
    use_agent: false
    public_key_path: "~/.ssh/id_rsa.pub"
    private_key_path: "~/.ssh/id_rsa"
  allowed_networks:
    ssh:
      - <IP_ADDRESS>/0
    api:
      - <IP_ADDRESS>/0
  public_networks:
    ipv4: true
    ipv6: true
  private_network:
    enabled : true
    subnet: <IP_ADDRESS>/16
    existing_network_name: ""
  cni:
    enabled: true
    encryption: false
    mode: flannel

manifest:
  system_upgrade_controller_deployment_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.4/system-upgrade-controller.yaml"
  system_upgrade_controller_crd_manifest_url: "https://github.com/rancher/system-upgrade-controller/releases/download/v0.13.4/crd.yaml"

datastore:
  mode: etcd

schedule_workloads_on_masters: false

image: debian-12

#### Cluster server groups ####
masters_pool:
  instance_type: cx22
  instance_count: 3
  location: nbg1

worker_node_pools:
- name: small-mail-pool
  instance_type: cx32
  instance_count: 3
  location: nbg1
  labels:
    - key: "node-type"
      value: "small-mail"

additional_packages:
  - open-iscsi
post_create_commands:
  - apt update
  - apt upgrade -y
  - apt autoremove -y

I haven't come across this one before and it looks super weird since the user is always root by default and it should work if the SSH keys are correct. Can you SSH to the nodes manually with the same keys?

I can

Which OS are you on?

I have fixed my issue, so in my specific situation i was building it locally and didn't have the proper version on libssh2.
My previous version was:
libssh2-1:amd64                         1.10.0-3

I installed the latest version and now it works

I have fixed my issue, so in my specific situation i was building it locally and didn't have the proper version on libssh2.
My previous version was:
libssh2-1:amd64                         1.10.0-3

I installed the latest version and now it works

Glad you figured it out


fn GetBits::get_bit: Make return type a bool

Approving to unblock merging, but I would also be interested to hear your thoughts RE: prioritization.

Oh, @rinon and I discussed this offline.  I definitely realize things like this aren't a priority as they're not actually making things safer, so I'll stay away from these types of refactors.  I tried rebasing this PR out of the stack, though, and it wasn't pretty, so I'll merge it so we can keep working on the more important safety stuff.


Be able to silence based on generatorURL

The primary purpose of generatorURL is to be able to silence on it, this is important when you've a broken/inaccessible Prometheus server that continues to send incorrect alerts. This should be an additional option for silences, potentially hidden in an advanced section.

+1 I needed exactly this the other day.

Not objecting to being able to silence on it, but to the statement that that is the primary purpose of the generatorURL :) My intent when sending this field to the Alertmanager was to have a nice link back from alerts/notifications to the Prometheus server graphing interface, so that one can easily play with the alerting expression.

The silence is the primary purpose, and quite some time was spent arguing that it should be a separate field rather than a label or annotation due to the required semantics of the silence and de-duplication.
Technically it should be two fields however with that and the link being combined into one it's much less likely that other am client implementations would skip over it not realising why it's so important.

Since generatorURL is outside of labels (which is what are used for matching currently) do we want to expand this feature request to be able to silence based on any part of a alert?
I can see that receivers might be useful to silence against, maybe fingerprint(?), but to be honest i'm struggling to come up with a silence usecase for any of the other fields.
Also in my experience I haven't ever hit something that would make silencing by generatorURL useful. Usually I will have labels that convey enough of the same information that it's not needed.

I don't see a need to silence on anything else.

Usually I will have labels that convey enough of the same information that it's not needed.

The whole point is for cases where labels aren't sufficient, such as a HA pair which are producing identical alert labels but one of them is dodgy.

I have similar requirement, want to inhibit notification from second replica of Prometheus. Any update on this issue ??

I recently had a case where silencing based on the generatorURL(or anything related peer) would have made a big difference. Is there still interest to implement it? What do you think of the approach taken here?

Was expecting a __source__ or something.  The alert seems to have the source, if you could write a regex to it it would allow for a pretty useful silence.

Bump on this very old issue. Does this functionality exist in some other way? Being able to silence based on the source of the alert would be really useful.

Does this functionality exist in some other way? Being able to silence based on the source of the alert would be really useful.

At least in many cases you should be able to silence based on the external identifying labels (global.external_labels in the Prometheus config file) of the sending Prometheus server, but any replica labels that distinguish multiple HA replicas of the same type would already be removed from the alert (via alert relabeling) before sending it to the Alertmanager (otherwise the alert can't be deduplicated), so that doesn't work anymore if only a specific replica of an HA pair is acting up.
Other than that, I think the initial feature request here is still desired and just needs someone to design & implement it properly. Since the generator URL currently includes not only the sending Prometheus URL itself, but also a path element that leads to a graph page, maybe it would even make sense to break that generator information up semantically a bit more into separate JSON fields (of course keeping the old generatorURL for backwards compatibility).
Disclaimer: I'm not an Alertmanager maintainer or much involved in its development.


[HUDI-1881]: draft implementation for trigger based on data availability

Tips

Thank you very much for contributing to Apache Hudi.
Please review https://hudi.apache.org/contribute/how-to-contribute before opening a pull request.

What is the purpose of the pull request
HoodieMultiTableDeltaStreamer needs to change its way of execution and implement thread pools to be able to ingest tables parallely.
Draft implementation for trigger based on data availability as suggested by @vinothchandar here - https://github.com/apache/hudi/pull/3929#pullrequestreview-800810611.
Brief change log
Added new method isDataAvailableForIngestion() in DeltaSync to be called from HoodieMultiTableDeltaStreamer's sync() method.
Verify this pull request
Will add tests once design is approved.
Committer checklist

[ ] Has a corresponding JIRA in PR title & commit

[ ] Commit message is descriptive of the change

[ ] CI is green

[ ] Necessary doc changes done or have another open PR

[ ] For large changes, please consider breaking it into sub-tasks under an umbrella JIRA.

@pratyakshsharma : once the patch is ready, do ping me here. I can review

@pratyakshsharma are you still working on this PR?

@yihua yes, I plan to complete it this week.

@hudi-bot run azure

@nsivabalan please take a pass, this should be good to review.

@nsivabalan @vinothchandar ping!

I need this PR to be merged for one of my project. Can you please merge this request as soon as possible.

@nsivabalan @yihua @codope ping!

@nsivabalan @vinothchandar @yihua users are asking for this PR. Can we review this anytime soon? :)

I'm waiting for this PR (or any possible solution to the continuous mode for MultiTableDeltaStreamer) as well

Hi @pratyakshsharma @nsivabalan
Can anyone let me know about the latest update on this limitation of HoodieMultiTableStreamer ? Where running HoodieMultiTableStreamer in --continuous mode seems to ingest only the first table.

nope. I don't think we have a fix for that yet. let us know if you are interested. If you would like to contribute, we can guide w/ the solution and review the patch and assist w/ landing.
If not, let us know if this is something you want to see in next release. we can try our best to allot resource to work on this.

@nsivabalan I am willing to take it up. I have already given it a shot in this PR. Let me know if you wish to discuss on slack or here itself about the solution.

@nsivabalan Siva, it seems @pratyakshsharma has already made an attempt at addressing the issue in the PR. Given the importance of the use-case and the progress made so far, it would be beneficial if @pratyakshsharma continues working on it. Having this feature would greatly contribute to resolving our use-case and making our lives easy. Let's encourage Pratyaksh to proceed.

I cherry picked this commit into Hudi 0.14.1 and did some minor changes and it seems to working fine for me.


[Pager] Combining pagerState.currentPage and animateScrollToPage

Description
I have a simple map Screen with markers and a Pager at the bottom at the screen (similar to what AirBnB used to have):

A click on a marker update the selectedIndex in the viewModel, and then with a LaunchedEffect inside the screen we animateScrollToPage
A scroll on the Pager update the currentPage and it updates the selected marker on the map

On the first few pager scroll and marker click it's working properly. But after it starts to behave strangely (pager not updated after a marker click)
Steps to reproduce
Here is the code snippet about the pagerState
val pagerState = rememberPagerState()
LaunchedEffect(pagerState) {
        snapshotFlow { pagerState.currentPage }.collect { page ->
            viewModel.update(page)
        }
    }
    LaunchedEffect(pagerState) {
        viewModel.selectedIndex.collect { index ->
            pagerState.animateScrollToPage(index)
        }
    }

animateScrollToPage can throw CancellationException if the user tries to scroll while the animated scroll is executed. Probably you need to wrap it into try { } catch (cancel: CancellationException) { }

Thanks for the info, BTW I fixed my issue just by using the scrollToPage instead of animateScrollToPage API, as I need a perfect match between the current page of the pager and the associated selected marker.


Zuul and Microservices in different VMs

Hi,
I'm working for a company which has the Zuul running on a virtual machine and some microservices running on another one. How can I configure the application.properties file of Zuul in order to proxy the requests done towards the microservices? Thank you.

I'm planning to write a guide on routing, but basically if you take a look at the sample app there is a rest client there called api. You can create as many of these as you need and route to them using the Routing filter. You can also set Zuul up to route to arbitrary VIPs in Eureka and use the default client settings.

So far I set a local test environment with zuul and a microservice (both on the same machine) and I manage the routing through zuul.route.url (or something similar, I didn't remember the correct syntax). If I correctly understood, I could manage the routing (zuul and microservices on different machines) using Eureka? Sorry but I'm a beginner with zuul, Eureka etc. Thank you


chore(deps): upgrade runtime dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-runtime-dependencies-k8s-27-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3306

Questions ?
Please refer to the Backport tool documentation


lib as module name?

Hello! Really interested in what you guys are doing with stdlib.
Just for the record - I'm a little concerned about the module name lib. I think a lot of developers use that as an internal module name, so it might be a problem.
I'm guessing you guys have thought about this, so just wondering what your thoughts are on this and if it's up for debate?

Awesome! Thank you.
The number one goal here is to create as consistent of a developer experience as possible across languages. It's totally OK if developers have used it as a namespace in previous projects --- it's expected. In that case, they're welcome to use from lib import lib as stdlib, or something of the sort. :)


Fix using broader type instead of finite type when creating union types

Purpose
$title
Fixes #33039
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[x] Added necessary tests

[x] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Shall we add a test case?


unreadModel: respond to message topic/stream edits

We currently don't update unreads when a message topic is edited. We should do so.
See CZO discussion.

Similarly when a message is moved between streams.
Both of these changes come to us in the form of update_message events:
https://zulip.com/api/get-events#update_message
We turn those events into Redux actions with type EVENT_UPDATE_MESSAGE.
So the place to implement this will be in src/unread/unreadModel.js, in streamsReducer, which should get a case EVENT_UPDATE_MESSAGE: section.

This causes pretty frustrating behavior when it happens: there's a thread in the unreads list, you tap on it to open, and then we fetch and find no messages, producing a nonsensical screen like this (reported in chat; discussion below that from about here):

Moreover, thanks to topic resolving, it's now a pretty common occurrence for a topic to get renamed, where once it was an edge case.

Oops, I accidentally assigned myself before remembering that #4980 is in progress. Fixed now.

(I went to add myself as an assignee because I've picked up the PR #4980, but instead it unassigned Wesley. Then I fixed it.)


import successfully but no module while train.py running

I am using anaconda, and the env has tf, keras, numpy and other stuff installed...
But I confronted a confusion problem~When I running train.py, it tells me "no module named keras", which I have already install in the ananconda env very confidently!
So I try and the wire things come out~
[when I type into python and the module appears], as follows
(yolo_env01) D:\PycharmProjects\keras-yolo3-05>python
Python 3.6.8 |Anaconda, Inc.| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

import keras.backend as K
Using TensorFlow backend.
import keras
exit()
======================================

[when I type run train.py(mine almost the same as train.py), it saids no module named keras], as follows
(yolo_env01) D:\PycharmProjects\keras-yolo3-05>train_0310update.py >03130323_log.txt
Traceback (most recent call last):
File "D:\PycharmProjects\keras-yolo3-05\train_0310update.py", line 6, in
import keras.backend as K
ModuleNotFoundError: No module named 'keras'
(yolo_env01) D:\PycharmProjects\keras-yolo3-05>
[what is the problem?~~~~it seems it is the problem of the yolo project, but anyone can help?]

Try running train.py by using python3 command instead of just python.


code tests for continuous integration

@ValentineHerr , I'm starting a running list of tests that I think would be valuable:

[x] for each quadrat censused, all expected trees were censused. This should not cause the batch data upload to fail, but it should generate a warning with a list of trees that were missed.
[x] Related to the above, it would be good to program a test for entire census completion: census doesn't pass test of completion until all trees have been censused. It would be useful to have a continuously updated status in terms of % stems censused.
For any unhealthy or dead tree, all required info was recorded (need to come up with list)
For each live tree, required info was recorded
some consistency checks among fields: e.g., if stem rot is recorded, it's severity level should be recorded.

See this file for list

Working on this using mort20 as guinea pig for now.
Looking at the set of trees that should have been censused according to 3rd main census, it looks like some Fraxinus were missed fram (65), frpe (1) and frsp (1)... they are also missing from mort19. They are on the smaller side.
I'll leave the check fail for now.

This test will be quite useful!

Ok I worked on the 2 first items in the list:

Files with subset of data that fail the test can be found here, (which is where the button that says check status in the README file sends)
The main readme file on main page of repo show the % completion

I'll work on the rest when we have the forms ready.

This is great; thanks!
Of course, we'll want to create a system to archive reports by year and switch over the tests to the 2021 census.

I was thinking that we don't need to archive the reports, as they should be empty once all the issues have been resolved and the census has been closed.
2020 is an exception as some stems were missed and the census was closed before that was addressed.
I have not checked the previous censuses as the test is set up to look at the latest one.

Right, I don't see any need to archive the reports.
We don't want to apply this system to 2020, although it would be valuable to retrospectively run checks on prior censuses (lower priority).

@ValentineHerr , I’m getting this notice after every time I push to the repo (e.g., protocol documents). I’m just ignoring, but eventually if there’s a way to limit the tests to pushes that include data, that would be helpful.

Yes, I was thinking about fixing that. I need to find out how to run the test only when the raw data folder is edited. Will work on it tomorrow.

Ok @teixeirak, I think I fix that. Now the workflow will be triggered only when a change is made in the raw_data folder (not its README.md file).
I tested it and it worked for me but let me know if you still get emails when you push things in other folders.

Seems to be solved; thanks!

@ValentineHerr , I've started a list of checks to set up here (at this point just transferring the items at the top of this issue).

@briannakcalkins (or @jenajordan ), you can edit the file referenced above if you think of tests that should be included. I'm going to add a few more examples, and then add specific tests that I think of, but it would be great if you could add tests that seem relevant as you work with the protocol.  As I mentioned yesterday, we'll set up a session with @rudeboybert to orient you to the continuous integration setup sometime next week, I think.
To edit, simply hit the pencil icon in the upper right corner, and copy the .md table formatting to add rows.

@teixeirak & @briannakcalkins - do checks we've discussed before (i.e. percent crown is 100% or less) go here, or have these already been incorporated)?

I believe that @jess-shue has constrained numerical values (e.g., percents) to possible values. I ended up adding quite a few more tests, so you can see examples of what I have in mind. These are tests that are difficult or impossible to constrain inn FastField, but important for ensuring census completion and consistency. I'll stop on this for now. One subject I haven't touched yet is the EAB census add-on.

@teixeirak, thanks for the list of tests.md file, this is very helpful.
I don't think I can code those tests yet without having a template of the mort_2021.csv  file (which, i understand will be a little different than 2020). But the coding should be very fast so I can work on it at the first upload or, alternatively, when Jess is done generating the form, we can fake the completion of a few trees and I can use that to test the code.

@teixeirak , @ValentineHerr  the form is fairly close to finished at this point. One clarification:  do you want to record the same extra fields for Chioanthus as you do for all of the ash trees? I can have the app show the extra section for both species; currently it only shows that section if it is an ash.

do you want to record the same extra fields for Chioanthus as you do for all of the ash trees?

Good question, @jess-shue . I'm actually not sure if Chioanthus would show the same symptoms of EAB as ash. Let's go ahead and include it.

Regarding a sample file for @ValentineHerr  to work with.... Perhaps @briannakcalkins or @jenajordan could go in and generate some fake data using the form. We'll want to be sure to get at least one ash and one dead tree. Valentine could start with that, and once we get out in the field she can try the tests on real data. (She could also just code it after our first day in the field, but having a fake form would help to get the whole system running smoothly.)
Here is the link to the form: https://manage.fastfieldforms.com/WebForm/164481/Form/639377.

@teixeirak, FYI, I updated the workflow so that it looks at the FFF forms directly. Working on adding more tests now, but there is already some things to check/fix in the reports forlder

Thanks! This is great.

@teixeirak, in your list of test you say " DWR (dead with resprouts) not selected", where would that be entered? in the status? (can't find it in protocole nor form)

never mind! I just missed it.

@teixeirak, where do I find the key for the letters in FAD? the one I see (here) does not have wound, e.g.

@jess-shue, how do I link a tree to its photo in the excel file?

@ValentineHerr , here's the latest protocol version of our protocol, which @briannakcalkins  is working on. And Dan's is here. Does that get what you need?

@ValentineHerr , here's the latest protocol version of our protocol, which @briannakcalkins is working on. And Dan's is here. Does that get what you need?

Ok, yes, it is in Dan's protocol, @briannakcalkins, I think you need to add "W = Wound" in the FAD table of the current protocol (and check that no other codes are missing).

@ValentineHerr , as discussed in lab meeting, we'll want to
(1) classify reports into those that require field checking versus those that can be fixed by code
(2) have the code automatically fix those that can be fixed by code, while saving a record of what has received this fix
(3) also save a record of what has had to be corrected in the field

Oops, didn't mean to close this!

@ValentineHerr , my comment in the latest commit shows an example of when we need to either perform tests in a certain order or modify some tests. There may be others. The tests are all independent, correct? So I assume it's better to modify the tests than to rely on a certain order (with fixes)?

@jess-shue, how do I link a tree to its photo in the excel file?

@ValentineHerr This is the first time I'm using the photos option in the app and it does not present a clear connection between the stem and the images. There is a 'Comment' column that exports into the excel file with the link to the photo in the 'Photo' column. We may need to type the tag number into the 'notes' on the app for a quick fix to this issue...

Ok, now the reports should be separated into 2 types, and the CI works again.

Hmmm, I still don't see the 2 groups...

Make sure you refresh, I should be there:

So strange! Here's what I see (just refreshed):

oh, sorry, nevermind! I'm not in reports folder.

yeah this is a bit confusing... but the reports folder is what is important for the crew. these .R script are just part of the CI black box.

@ValentineHerr , would it be possible to code the rest of these tests (mainly ash census) this week? (And how much of your time do we have left?)

Sorry I had not seen the list was updated. I'll work on that now. I have ~18.5 hours left.

ok, thanks.

All right, I think I went through all of the items on the list, except the photo one, which I am not sure I can do, as it is unclear how the photos get paired with the data.
I added 2 things on the main repo page: one is the list of the warnings, the other is a map of the blocks with census status (done, warning pending and/or error pending).
Let me know if that works!

This is great; thank you! I really like that map!
What happened to all the previous errors? Are they already corrected?

What happened to all the previous errors? Are they already corrected?

Oh, I see that they're still there. I think that it's confusing to highlight the warnings so much more strongly than the errors. I'm going to edit the .md to fix this.


Improve password hashing API

I had been unhappy with the way that we interacted with the password hashing utilities for a while now so decided to finally get around to do something about it.
Related Issues
(I never made an issue for this, I should have)
Describe the Changes
This commit removes gen_salt() and merges it into hash_password() and introduces the HashedPassword struct which is used to represent a hashed password in a safer manner.
I also added a simple type def UnsafeBinaryString to make it more obvious that the output of a password hashing is not a valid string but we are treating it like one.
Still To Do
Ensure that the changes do not break any existing password hashes in the database. It should be fine since the actual password hashing and verifying code has not changed.
Problems
HashedPassword and UnsafeBinaryString were both introduced to make working with the API somewhat safer. But it still ends up using unsafe Strings and uses unsafe code, which I would like to avoid.
It might be possible to have Diesel understand a Vec<u8> or similar and handle it in the database. But I do not know how.
Which is why I am making this as a PR instead of just pushing it like I usually do. Some feedback on the new API and any suggestions on tightening it up and possibly removing the unsafe code would be awesome.
So that said @BrianMejia would you be willing to review this for me?

We've discussed a potential option using Diesel's serialization features. A good example comes from ToSql trait, where we can use a u8 implementation of this trait. We can then wrap the UnsafeBinaryString into a newtype struct, allowing the newtype to not be treated like a String.
A more drastic option is to just change the database backend (SQLite does not like to be complex), but of course that will take a lot of effort.

OK I have updated this to a new model that uses a custom type and makes Diesel understand it.


i18n(fr): update guides/astro-db.mx

Description (required)
Add changes from #9468 to French translation of guides/astro-db.mdx

Related issues & labels (optional)

Suggested label: i18n

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/astro-db.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Template for the workflow of a tutorial

I create the /images folder in /templates.
I add the template for the workflow of the differents part of a tutorial.
It is in graphml and i worked with yED.
I make this pull Request to allow all the peoples to make this scheme with the same template.
I also add the "NotoSans" font on the /shared/font/ folder. It's the font i used for the text of the worflow (i found it on the css) with yED
Here is an overview with png format:

I like!!!!

As I sad I love it!

Thanks @ValentinMarcon great contribution!


Decimal implementation v4

This includes commits from https://github.com/facebook/presto/pull/4420.
Please ignore those.

I merged the parametric varchar PR. Can you rebase this one?

rebased onto master

Heads up on rebasing, we moved TypeCalculation to the parser module: https://github.com/facebook/presto/pull/4463

yet another rebase :)

And yet another :)

@martint if you could take a pass on this it would be great, we're looking forward to landing this big guy soon, thanks! :)

@martint if you could take a pass on this it would be great, we're looking forward to landing this big guy soon, thanks! :)

Working on it :)

New version with addressed comments and rebased onto master here:
https://github.com/facebook/presto/pull/4626


KeyError: PI

Hi I was trying to convert my vcf to haplotype . I used python3.6 to run vcf-simplify and I got the error message below
Traceback (most recent call last):
File "/home/user/apps/VCF-Simplify/VcfSimplify.py", line 58, in
main()
File "/home/user/apps/VCF-Simplify/VcfSimplify.py", line 53, in main
vcf_solver(task, args)
File "/home/user/apps/VCF-Simplify/assign_task/perform_operation.py", line 95, in vcf_solver
fnc_vcf_to_haplotype(infile, outfile, header_name, pi_tag, pg_tag, include_unphased, gtbase)
File "/home/user/apps/VCF-Simplify/metadata_parser/utils.py", line 26, in wrapper
result = func(*args, **kwargs)
File "/home/user/apps/VCF-Simplify/records_parser/simplifyvcf/to_haplotype.py", line 101, in fnc_vcf_to_haplotype
pi_values = [mapped_record[sample][pi_tag] for sample in sample_ids]
File "/home/user/apps/VCF-Simplify/records_parser/simplifyvcf/to_haplotype.py", line 101, in
pi_values = [mapped_record[sample][pi_tag] for sample in sample_ids]
KeyError: 'PI'

It's because your VCF does not have the "PI" tag in FORMAT field. You may indicate any other equivalent tag or "CHROM" if you want the haplotype representation to be chromosome wide.


flow configuration for react.scripts2.0.0-next

I had to add several options to my .flowconfig when testing with reeact.scripts2.0.0-next to get it to work.  I am fine with adding these configs, posting to see whether they should be added to docs as well:
"react-scripts": "2.0.0-next.66cc7a90"
node: 8.9.3
yarn: 1.6.0
flow: 0.7.0
In particular I added SASS support as well as yarn workspaces.
.flowconfig:
[include]
../workspace1
../workspace2
[options]
module.name_mapper='^@project/(.*)$' -> '<PROJECT_ROOT>/../\1'
module.file_ext=.scss
Also, since yarn workspaces hoist most of the packages root node_modules, many of the imports might cause flow errors for people.  I personally ignore everything in node_modules, and use flow_typed stubs to get definition so it doesn't affect me.  Just a heads up.

I suppose we'll want to mention this in Flow docs.


revison for step 3.4

In step 3.4, read "Find the app key ida:Audience and replace the value with the App ID URI you copied from the Azure portal."
the phrase should be "Find the app key ida:Audience and replace the value with the CLIENT ID you copied from the Azure portal."

I made a mistake. :(


How to handle "onAlert"

I am new to this module. How do I handle "onAlert" provided by PhantomJS?

I am struggling with handling onALert provided by PhantomJS when using this module.
Please help/advise.

page.property('onAlert', ...) should work. This section is for creating issues not for asking questions.


Plugin causes build to fail in PhoneGap Buil

Our PhoneGap build is failing even though the Build Status page says it is up and running. I know that it is this plugin because when I remove these lines from the config.xml the build will work:
<preference` name="android-build-tool" value="gradle" />
<plugin name="phonegap-plugin-push" source="npm">
<param name="SENDER_ID" value="XXXXXXXXXXX" />
</plugin>

We are getting this error: Oh geez. Your build failed. Sorry, but a problem occurred on the build server
This is the error log:
Build Date: 2016-07-07 01:38:33 +0000
FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring root project 'project'.

Could not resolve all dependencies for configuration ':_debugCompile'.
Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
Searched in the following locations:
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/
file:/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/ma ven-metadata.xml
file:/android-sdk/extras/android/m2repository/com/google/android/gms/play-services-gcm/
file:/android-sdk/extras/google/m2repository/com/google/android/gms/play-services-gcm/mav en-metadata.xml
Required by:
:project:unspecified

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
Total time: 2.369 secs
undefined

@andrewbriggs that means the build service doesn't have version 9.0.2 of Google Play Services on it. I will talk to the build team. In the mean time pin your version to 1.7.2.

I only got a successful build with version 1.6.4 due to the same problem

@gustavocampos : By the way... with PGB you should only be able to use <=1.7.0 or the app will crash (see https://github.com/phonegap/phonegap-plugin-push/issues/1020), whatever device or Android version :-/

@cmalard oh thanks for letting me know

@cmalard I am using 1.7.2 and the app is not crashing.

In my config.xml:
  <preference` name="android-build-tool" value="gradle" />
  <plugin name="phonegap-plugin-push" source="npm" spec="1.6.4">
    <param name="SENDER_ID" value="653658856830"/>
  </plugin>
  <platform name="android">

But I still get an error:
FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all dependencies for configuration ':_debugCompile'.
   > Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
     Searched in the following locations:
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
         https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/

What do I do incorrect?

All, I sent another message to the PGB team to update.

same issue for me ((

Hello, guys! I need to show today an app. But I cant compile it for reasone - play-services-gcm:9.0.2+.
How can I fix it?

hi all,
I have same issue, and trying to fix from last evening.
I need to implement Push Notification in my existing application, and i follow
https://www.youtube.com/watch?v=LV1CjQ1UsYA
when I try to build apk-
$ cordova build android --release
It gives following error as-
FAILURE: Build failed with an exception.

What went wrong:
A problem occurred evaluating root project 'android'.

Failed to apply plugin [id 'android']
Plugin with id 'android' not found.

=>Wanted to know what is the issue behind?
=> and how to get it fixed?

HI ALL,
I have same issue, and trying to fix from last evening.
I need to implement Push Notification in my existing application, and i follow
https://www.youtube.com/watch?v=LV1CjQ1UsYA
when I try to build apk-
$ cordova build android --release
It gives following error as-
FAILURE: Build failed with an exception.

What went wrong:
A problem occurred evaluating root project 'android'.

Failed to apply plugin [id 'android']
Plugin with id 'android' not found.

=>Wanted to know what is the issue behind?
=> and how to get it fixed?

In my case, this message was because of missing packages in the Android SDK, so it was required to install some packages via the Android SDK Manager.
android # To open the SDK manager

Look for:
Extras -> Google play services
Extras -> Google repository

And install them.

Source: http://stackoverflow.com/questions/33475178/cordova-fails-to-build-on-android-gcm-dependency

build fails with same issue even after setting version to 1.7.2

I updated Google Play Service in Android SDK Manager and it worked

@AnSharipov  my playservices are level 31 no more updates available still issue persists

It's my first contact with this kind of stuff....
Here goes my erros
http://prntscr.com/bv8044
**SDK's: **
http://prntscr.com/bv80uj

solution for this?

Hi, have you resolve this?
I have updated to the latest SDK for all the dependencies and still the same.
Thanks!

@ezequielnaftali : nothing to resolve here. We're waiting PGB update.
What you can do now : https://github.com/phonegap/phonegap-plugin-push/issues/1064#issuecomment-231481150

They made an update ! https://twitter.com/phonegapbuild/status/758412620038713345

I've getting error:
`* What went wrong:
A problem occurred configuring root project 'android'.

Could not resolve all dependencies for configuration ':_debugCompile'.
Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
Searched in the following locations:
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/maven-metadata.xml
https://repo1.maven.org/maven2/com/google/android/gms/play-services-gcm/`

And then I've updated as fentas said:
Extras -> Google play services Extras -> Google repository
Regards

Hi, is there any fixes or work arounds, i am also stuck with the same thing
Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+

Open your SDK Manager and then search Google Play Services (Extras folder, below of all) check on Google Play Services and Install Packages.
You tried it?

Updating the Google Play Services worked for me. Thanks

Updating play services isn't helping ... Currently get build from build.phonegap.com
But there are plugins which require install time parameters which are thus stuck
Please do help

I installed Extras -> Google Play Services and Extras -> Google Repository, and my build worked successfully.

Still getting the same error. Have updated Google Play Services and Google Repository.

Figured it out. If you are running via CLI and update Android SDK directly it may not work. You need to also update from within Android Studio. That did it for me!

Could not find any version that matches com.google.android.gms:play-services-gcm:9.0.2+.
Solution in my case:
I modified file /platforms/android/project.properties:

cordova.system.library.2=com.google.android.gms:play-services-gcm:9.0.2+
cordova.system.library.2=com.google.android.gms:play-services-gcm:8.4.0

@ppiatek how you do it?, i find this other solution

Has this problem been solved? I tired all suggestion and still fail with the same error

I had below error message the suggestion of which versions of play-services-gcm I have installed in my OS, so I chose 8.4.0 and then it started working. I tried to install version 9.0.2 but without results but changing to this version in this file (/platforms/android/project.properties) helped me.

@ppiatek how do I check which version of play-services-gcm I have on my OS? Obviously I don't have the 8.4.0 because I got the same error

For me it was the exact opposite from @wwwguy , update from Android Studio didn't work, but update from Android SDK manager directly (writing android in console like @fentas mentioned) solved it for me

@ppiatek worked for me too!

@fentas solution works for me (updating packages via android manager).

@sklaujb sorry that I didn't answer when you asked. Maybe you solved that but I would try to use some of version available and check is it work. I had few days ago tha same problem after updating some packages.
Logs in console began with this:
`Could not resolve all dependencies for configuration ':_armv7DebugCompile'.

Could not find any version that matches com.google.android.gms:play-services-gcm:9.8+.
Versions that do not match:
9.6.1
9.6.0
9.4.0
9.2.1
9.2.0
+ 7 more
`

so I took the tried with first version "9.6.1" and the application has compiled.
Now I changed this line:
cordova.system.library.3=com.google.android.gms:play-services-gcm:9.8+
to this:
cordova.system.library.3=com.google.android.gms:play-services-gcm:9.6.1

Thanks @ppiatek ! I solved this thanks to you

the PGB team has asked for people with issues regarding phonegap build please start an issue on the support forum: https://forums.adobe.com/community/phonegap/build
please include an app id of an app that can replicate this issue.

Android > SDK Manager.
Update the Android Studio SDK Manager: click SDK Tools, expand Support Repository, select Google Repository, and then click OK.


Usability Testing

Ask User 1 on their thoughts of the landing pages (usability testing)

User 1: Peter
The user noticed that in the hero section, the picture and the words did not really blend-in very good. Said that there was definitely some changes that could be made to make the hero section look better. Other than that said that the rest of the layout looked good, user suggested that I add a separator or a divider that helps split the sections up a little bit.


Request for license on this repository.

Would it be possible to put a permissible license on the code in this repository, e.g MIT?
And also update the dependency to requests to 2.28.
Thank you very much.

Hi @sunayana , this was an oversight, the code is available under the MIT license, I added the LICENSE file. (And updated requests.)

Thank you very much @jochenklar !


During test discovery using gtest (within the cmake build all test), there is a segmentation fault only Ubuntu 20, with OpenSSL 1.1

From an unrelated PR: https://github.com/Azure/azure-sdk-for-cpp/pull/4467, failing on Validate Ubuntu20_openssl_111n
https://dev.azure.com/azure-sdk/29ec6040-b234-4e31-b139-33dc4287b756/_apis/build/builds/2658413/logs/651
2023-03-27T19:15:24.5201507Z [ 50%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/blob_lease_client.cpp.o
2023-03-27T19:15:25.4613283Z CMake Error at /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:112 (message):
2023-03-27T19:15:25.4615990Z   Error running test executable.
2023-03-27T19:15:25.4618697Z
2023-03-27T19:15:25.4620939Z     Path: '/mnt/vss/_work/1/s/build/sdk/keyvault/azure-security-keyvault-administration/test/ut/azure-security-keyvault-administration-test'
2023-03-27T19:15:25.4622868Z     Result: Segmentation fault
2023-03-27T19:15:25.4623814Z     Output:
2023-03-27T19:15:25.4624688Z
2023-03-27T19:15:25.4625228Z
2023-03-27T19:15:25.4626076Z Call Stack (most recent call first):
2023-03-27T19:15:25.4627706Z   /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:225 (gtest_discover_tests_impl)
2023-03-27T19:15:25.4628673Z
2023-03-27T19:15:25.4630529Z
2023-03-27T19:15:25.4632944Z make[2]: *** [sdk/keyvault/azure-security-keyvault-administration/test/ut/CMakeFiles/azure-security-keyvault-administration-test.dir/build.make:128: sdk/keyvault/azure-security-keyvault-administration/test/ut/azure-security-keyvault-administration-test] Error 1
2023-03-27T19:15:25.4635629Z make[2]: *** Deleting file 'sdk/keyvault/azure-security-keyvault-administration/test/ut/azure-security-keyvault-administration-test'
2023-03-27T19:15:25.4638066Z make[1]: *** [CMakeFiles/Makefile2:1999: sdk/keyvault/azure-security-keyvault-administration/test/ut/CMakeFiles/azure-security-keyvault-administration-test.dir/all] Error 2
2023-03-27T19:15:25.4639761Z make[1]: *** Waiting for unfinished jobs....
2023-03-27T19:15:25.4924432Z [ 50%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/blob_options.cpp.o
2023-03-27T19:15:26.2639469Z [ 51%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/blob_responses.cpp.o
2023-03-27T19:15:27.4047149Z [ 51%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/blob_sas_builder.cpp.o
2023-03-27T19:15:29.5126166Z [ 51%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/blob_service_client.cpp.o
2023-03-27T19:15:30.3415697Z [ 52%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/block_blob_client.cpp.o
2023-03-27T19:15:32.3518844Z [ 52%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/page_blob_client.cpp.o
2023-03-27T19:15:33.2920134Z [ 52%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/private/avro_parser.cpp.o
2023-03-27T19:15:33.9682243Z [ 52%] Building CXX object sdk/storage/azure-storage-blobs/CMakeFiles/azure-storage-blobs.dir/src/rest_client.cpp.o
2023-03-27T19:15:40.8327363Z [ 53%] Linking CXX executable azure-security-keyvault-certificates-test
2023-03-27T19:15:41.5443782Z [ 53%] Linking CXX static library libazure-storage-queues.a
2023-03-27T19:15:41.6838207Z [ 53%] Built target azure-storage-queues
2023-03-27T19:15:42.1149751Z CMake Error at /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:112 (message):
2023-03-27T19:15:42.1170136Z   Error running test executable.
2023-03-27T19:15:42.1171527Z
2023-03-27T19:15:42.1174845Z     Path: '/mnt/vss/_work/1/s/build/sdk/keyvault/azure-security-keyvault-certificates/test/ut/azure-security-keyvault-certificates-test'
2023-03-27T19:15:42.1178350Z     Result: Segmentation fault
2023-03-27T19:15:42.1179571Z     Output:
2023-03-27T19:15:42.1180591Z
2023-03-27T19:15:42.1181228Z
2023-03-27T19:15:42.1182156Z Call Stack (most recent call first):
2023-03-27T19:15:42.1183860Z   /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:225 (gtest_discover_tests_impl)
2023-03-27T19:15:42.1185123Z
2023-03-27T19:15:42.1185724Z
2023-03-27T19:15:42.1188016Z make[2]: *** [sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeFiles/azure-security-keyvault-certificates-test.dir/build.make:128: sdk/keyvault/azure-security-keyvault-certificates/test/ut/azure-security-keyvault-certificates-test] Error 1
2023-03-27T19:15:42.1190744Z make[2]: *** Deleting file 'sdk/keyvault/azure-security-keyvault-certificates/test/ut/azure-security-keyvault-certificates-test'
2023-03-27T19:15:42.1193314Z make[1]: *** [CMakeFiles/Makefile2:1912: sdk/keyvault/azure-security-keyvault-certificates/test/ut/CMakeFiles/azure-security-keyvault-certificates-test.dir/all] Error 2
2023-03-27T19:15:46.3408533Z [ 54%] Linking CXX static library libazure-storage-files-shares.a
2023-03-27T19:15:46.3702696Z [ 54%] Built target azure-storage-files-shares
2023-03-27T19:15:57.6203853Z [ 55%] Linking CXX static library libazure-storage-blobs.a
2023-03-27T19:15:57.6543997Z [ 55%] Built target azure-storage-blobs
2023-03-27T19:15:57.6552549Z make: *** [Makefile:146: all] Error 2
2023-03-27T19:15:57.6613283Z ##[error]Bash exited with code '2'.
2023-03-27T19:15:57.6633919Z ##[section]Finishing: cmake build All

cc @LarryOsterman, @danieljurek

Updating to the latest gtest version doesn't resolve the issue.
https://github.com/Azure/azure-sdk-for-cpp/pull/4486
https://dev.azure.com/azure-sdk/public/_build/results?buildId=2658953&view=logs&j=23363245-6a5f-5e4d-1f27-b9a78bed083f&t=53ef76ab-cc2b-5463-1fc8-2e4013fa03f0&l=332
[ 66%] Linking CXX executable azure-core-test
files'
CMake Error at /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:112 (message):
  Error running test executable.

    Path: '/mnt/vss/_work/1/s/build/sdk/core/azure-core/test/ut/azure-core-test'
    Result: Segmentation fault
    Output:

Call Stack (most recent call first):
  /usr/local/share/cmake-3.26/Modules/GoogleTestAddTests.cmake:225 (gtest_discover_tests_impl)


Re-pin numpy to fix env creation

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

@conda-forge-admin, please rerender

I think this is obsolete.


#584 Rename README files

Change [readme.md](http://readme.md/) files to all caps [README.md](http://readme.md/).
Update references to readme.md and [changelog.md](http://changelog.md/) to [README.md](http://readme.md/) and [CHANGELOG.md](http://changelog.md/) in components README.
https://github.com/cagov/design-system/issues/584

(commits shown are from rebasing off our work - there was some diff from an upstream change in this branch though (nothing I did) - logging here in case it comes up again later.

closing, not sure why PR won't generate


Add transitions to side panel

It would be cool if the content in the side panel faded in and out whenever a vertex or edge is clicked.

I think to do this I should use D3 to handle the content changes in the side panel.  selection.exit(), selection.update(), etc.


/new-trello-card fails to obtain the url in the response.

When the /new-trello-card command is used, the card gets moved in the trello board, but when trying to obtain the url it just fails.

Thanks for reporting! Very interesting case, especially because you say the card is created. Are you able to reproduce this error consistently? Also, is the rest of the integration functioning as intended?
Please also double-check if your Trello list ID, API key and token are correct 🤔

I also released v9.2.3 with better error logging, you can try to upgrade so we could get more context :)

Hello @ukupat , thanks for your response, i been a bit busy this week, but i hopefully will get back to you with a more documented issue, this weekend.

Hello @ukupat bumped to v9.2.3

and it seems that it can't find the board where the card belongs to, also i wasn't able to reproduce the card creation, bug.
I double checked, and it seems that api credentials were ok, as the cards get created when i manually put the trello url.
Im going to share what bits of the json im using to associate the trello board:
trello-board-id: 6621c337327b56c3ac6acbbc
trello-list-id-pr-open: 6621c337327b56c3ac6acbc3
trello-list-id-pr-closed: 6621c337327b56c3ac6acbc5

First list
{
    "id": "6621d558b221f62178944ebf",
    "address": null,
    "badges": {
        "attachmentsByType": {
            "trello": {
                "board": 0,
                "card": 0
            }
        },
        "location": false,
        "votes": 0,
        "viewingMemberVoted": false,
        "subscribed": false,
        "fogbugz": "",
        "checkItems": 0,
        "checkItemsChecked": 0,
        "checkItemsEarliestDue": null,
        "comments": 0,
        "attachments": 0,
        "description": false,
        "due": null,
        "dueComplete": false,
        "start": null
    },
    "checkItemStates": [],
    "closed": false,
    "coordinates": null,
    "creationMethod": null,
    "dueComplete": false,
    "dateLastActivity": "2024-04-19T02:22:16.390Z",
    "desc": "",
    "descData": {
        "emoji": {}
    },
    "due": null,
    "dueReminder": null,
    "email"<EMAIL_ADDRESS>    "idBoard": "6621c337327b56c3ac6acbbc",
    "idChecklists": [],
    "idLabels": [],
    "idList": "6621c337327b56c3ac6acbc3",
    "idMembers": [],
    "idMembersVoted": [],
    "idOrganization": "611f6e73aaffc882ef5a9648",
    "idShort": 7,
    "idAttachmentCover": null,
    "labels": [],
    "limits": {
        "attachments": {
            "perCard": {
                "status": "ok",
                "disableAt": 1000,
                "warnAt": 800
            }
        },
        "checklists": {
            "perCard": {
                "status": "ok",
                "disableAt": 500,
                "warnAt": 400
            }
        },
        "stickers": {
            "perCard": {
                "status": "ok",
                "disableAt": 70,
                "warnAt": 56
            }
        }
    },
    "locationName": null,
    "manualCoverAttachment": false,
    "name": ":building_construction: (refactor): djksak",
    "nodeId": "ari:cloud:trello::card/workspace/611f6e73aaffc882ef5a9648/6621d558b221f62178944ebf",
    "pos": 8192,
    "shortLink": "hcdzYUZD",
    "shortUrl": "https://trello.com/c/hcdzYUZD",
    "staticMapUrl": null,
    "start": null,
    "subscribed": false,
    "url": "https://trello.com/c/hcdzYUZD/7-buildingconstruction-refactor-djksak",
    "cover": {
        "idAttachment": null,
        "color": null,
        "idUploadedBackground": null,
        "size": "normal",
        "brightness": "dark",
        "idPlugin": null
    },
    "isTemplate": false,
    "cardRole": null,
    "checklists": [],
    "customFieldItems": [],
    "members": [],
    "pluginData": [],
    "actions": [
        {
            "id": "6621d558b221f62178944eca",
            "idMemberCreator": "5c4d715875c62687537d10ed",
            "data": {
                "card": {
                    "id": "6621d558b221f62178944ebf",
                    "name": ":building_construction: (refactor): djksak",
                    "idShort": 7,
                    "shortLink": "hcdzYUZD"
                },
                "list": {
                    "id": "6621c337327b56c3ac6acbc3",
                    "name": "To Do"
                },
                "board": {
                    "id": "6621c337327b56c3ac6acbbc",
                    "name": "TestBoard",
                    "shortLink": "BLNpNrGK"
                }
            },
            "appCreator": {
                "id": "6621c31143521a205892a78d"
            },
            "type": "createCard",
            "date": "2024-04-19T02:22:16.408Z",
            "limits": null,
            "memberCreator": {
                "id": "5c4d715875c62687537d10ed",
                "activityBlocked": false,
                "avatarHash": "10c9d1754119c33bb20a8e2aec9f964f",
                "avatarUrl": "https://trello-members.s3.amazonaws.com/5c4d715875c62687537d10ed/10c9d1754119c33bb20a8e2aec9f964f",
                "fullName": "Alan David",
                "idMemberReferrer": null,
                "initials": "AD",
                "nonPublic": {
                    "fullName": "Alan David",
                    "initials": "AD",
                    "avatarUrl": "https://trello-members.s3.amazonaws.com/5c4d715875c62687537d10ed/10c9d1754119c33bb20a8e2aec9f964f",
                    "avatarHash": "10c9d1754119c33bb20a8e2aec9f964f"
                },
                "nonPublicAvailable": true,
                "username": "alanfzf"
            }
        }
    ]
}

Second list
{
    "id": "662e0a1baa184cfbbb3ec066",
    "address": null,
    "badges": {
        "attachmentsByType": {
            "trello": {
                "board": 0,
                "card": 0
            }
        },
        "location": false,
        "votes": 0,
        "viewingMemberVoted": false,
        "subscribed": false,
        "fogbugz": "",
        "checkItems": 0,
        "checkItemsChecked": 0,
        "checkItemsEarliestDue": null,
        "comments": 0,
        "attachments": 0,
        "description": false,
        "due": null,
        "dueComplete": false,
        "start": null
    },
    "checkItemStates": [],
    "closed": false,
    "coordinates": null,
    "creationMethod": null,
    "dueComplete": false,
    "dateLastActivity": "2024-04-28T08:34:35.523Z",
    "desc": "",
    "descData": {
        "emoji": {}
    },
    "due": null,
    "dueReminder": null,
    "email"<EMAIL_ADDRESS>    "idBoard": "6621c337327b56c3ac6acbbc",
    "idChecklists": [],
    "idLabels": [],
    "idList": "6621c337327b56c3ac6acbc5",
    "idMembers": [],
    "idMembersVoted": [],
    "idOrganization": "611f6e73aaffc882ef5a9648",
    "idShort": 8,
    "idAttachmentCover": null,
    "labels": [],
    "limits": {
        "attachments": {
            "perCard": {
                "status": "ok",
                "disableAt": 1000,
                "warnAt": 800
            }
        },
        "checklists": {
            "perCard": {
                "status": "ok",
                "disableAt": 500,
                "warnAt": 400
            }
        },
        "stickers": {
            "perCard": {
                "status": "ok",
                "disableAt": 70,
                "warnAt": 56
            }
        }
    },
    "locationName": null,
    "manualCoverAttachment": false,
    "name": "dsa",
    "nodeId": "ari:cloud:trello::card/workspace/611f6e73aaffc882ef5a9648/662e0a1baa184cfbbb3ec066",
    "pos": 65536,
    "shortLink": "5X26QFsh",
    "shortUrl": "https://trello.com/c/5X26QFsh",
    "staticMapUrl": null,
    "start": null,
    "subscribed": false,
    "url": "https://trello.com/c/5X26QFsh/8-dsa",
    "cover": {
        "idAttachment": null,
        "color": null,
        "idUploadedBackground": null,
        "size": "normal",
        "brightness": "dark",
        "idPlugin": null
    },
    "isTemplate": false,
    "cardRole": null,
    "checklists": [],
    "customFieldItems": [],
    "members": [],
    "pluginData": [],
    "actions": [
        {
            "id": "662e0a1baa184cfbbb3ec06f",
            "idMemberCreator": "5c4d715875c62687537d10ed",
            "data": {
                "card": {
                    "id": "662e0a1baa184cfbbb3ec066",
                    "name": "dsa",
                    "idShort": 8,
                    "shortLink": "5X26QFsh"
                },
                "list": {
                    "id": "6621c337327b56c3ac6acbc5",
                    "name": "FINALIZADO"
                },
                "board": {
                    "id": "6621c337327b56c3ac6acbbc",
                    "name": "TestBoard",
                    "shortLink": "BLNpNrGK"
                }
            },
            "appCreator": null,
            "type": "createCard",
            "date": "2024-04-28T08:34:35.538Z",
            "limits": null,
            "memberCreator": {
                "id": "5c4d715875c62687537d10ed",
                "activityBlocked": false,
                "avatarHash": "10c9d1754119c33bb20a8e2aec9f964f",
                "avatarUrl": "https://trello-members.s3.amazonaws.com/5c4d715875c62687537d10ed/10c9d1754119c33bb20a8e2aec9f964f",
                "fullName": "Alan David",
                "idMemberReferrer": null,
                "initials": "AD",
                "nonPublic": {
                    "fullName": "Alan David",
                    "initials": "AD",
                    "avatarUrl": "https://trello-members.s3.amazonaws.com/5c4d715875c62687537d10ed/10c9d1754119c33bb20a8e2aec9f964f",
                    "avatarHash": "10c9d1754119c33bb20a8e2aec9f964f"
                },
                "nonPublicAvailable": true,
                "username": "alanfzf"
            }
        }
    ]
}

Oops, seems like the first action was sent with an incorrect idList updated it and get this new error:

and was able to reproduce the issue, the card gets created, but fails to return the url:

From what i can understand the issue, is occuring when the action, tries to update the body of the pull request, afaik, my action.yaml is configured correctly but here it is anyway:
name: Trello integration
on:
    pull_request:
        types: [opened, edited, closed, reopened, ready_for_review, converted_to_draft]
    issue_comment:
        types: [created, edited]
jobs:
    trello:
        runs-on: ubuntu-latest
        environment: Test
        steps:
            - uses<EMAIL_ADDRESS>              with:
                  github-token: ${{ secrets.GITHUB_TOKEN }}
                  github-include-new-card-command: true
                  trello-api-key: ${{ secrets.TRELLO_API_KEY }}
                  trello-auth-token: ${{ secrets.TRELLO_AUTH_TOKEN }}
                  trello-board-id: 6621c337327b56c3ac6acbbc
                  trello-list-id-pr-open: 6621c337327b56c3ac6acbc3
                  trello-list-id-pr-closed: 6621c337327b56c3ac6acbc5

Made small pr to add this info in the main readme file! 😄 thanks, for your time!

Hmm interesting find. We use a custom token for  github-token with more permissions so I guess thats why we didn't encounter this problem. Thank you for the information and for the PR!