[epic] Support installing bundles from a private registry

Currently, there is no support for creating a ClusterExtension that can install a bundle that is in a private registry and requires authentication. This epic is scoped for enabling that support. There are a couple different approaches that should be supported:

A global pull secret

Note: this should also be done in Catalogd, which currently has support for direct references to a Secret

A direct reference to a Secret

Can the ServiceAccount be patched to attach the cluster pull secret?

Can the ServiceAccount be patched to attach the cluster pull secret?

@bentito Could you elaborate on what you mean by this?

The user/admin would need to do this:
kubectl patch serviceaccount default -p '{"imagePullSecrets": [{"name": "my-pull-secret"}]}'

and then the code would need to reference it, for example on Pod creation:
  // Define a new Pod object
  pod := &corev1.Pod{
    ObjectMeta: metav1.ObjectMeta{
      Name:      "demo-pod",
      Namespace: req.Namespace,
    },
    Spec: corev1.PodSpec{
      Containers: []corev1.Container{
        {
          Name:  "demo-container",
          Image: "my-registry.example.com/my-image:latest",
        },
      },
      ServiceAccountName: "default", // Ensure this ServiceAccount has the pull secret
    },
  }

Benefits of blessing the SA with the pull secret like this are 1) it's centralized for any usage (Pod, Deployment, etc); 2) Just one place to go to for creds rotation.

@bentito thanks for more info on that. I forgot that in catalogd's unpacking implementation for image sources we have the ServiceAccount configured secrets disabled for pull secrets:
https://github.com/operator-framework/catalogd/blob/e6da1538304ec2af0648c918bff127632c4d0d0e/internal/source/image_registry_client.go#L58-L61
I think we should enable them for both catalogd and operator-controller (o-c should follow a similar pattern to catalogd)

/assign

With https://github.com/operator-framework/operator-controller/commit/097d897611ec72e85e5c0d92723466846aa2d06c and related PRs merged the context of this RFC has changed. @skattoju is working to update the RFC to reflect the current state.

@cgwalters We stumbled upon https://github.com/containers/image/pull/1746 during a discussion about how OLM can directly pull images using OCP's global pull secret and the containers/image library.
I see in the PR that /etc/containers/auth.json is not a location that containers/image reads by default (I had originally mistakenly assumed it was).
Since OLM is a controller running in an OCP cluster with a randomly assigned UID, none of the default locations "just work". It seems like we need to do some combination of:

explicitly set one of XDG_RUNTIME_DIR, XDG_CONFIG_HOME, or HOME
explicitly set an authfile path in the types.SystemContext struct.
actually do a volumeMount to make that file available in whichever location we ultimately choose.

Given that PR, I'm wondering if you have any recommendation for setting up global auth in a system-level OCP component?

how OLM can directly pull images using OCP's global pull secret

Today the OCP one is the kubelet one, which is not /etc/containers/auth.json. But, if we introduced /etc/containers/auth.json, it'd make sense to start writing it by default and have /var/lib/kubelet/config.json be a symlink to it, right?

Given that PR, I'm wondering if you have any recommendation for setting up global auth in a system-level OCP component?

The PR isn't done so doesn't help anything today.
In the meantime, yes you'll need to get access to the kubelet pull secret and explicitly use it. There's an API object for it I believe which you could just fetch from your operator and project the secret into your env.

But, if we introduced /etc/containers/auth.json, it'd make sense to start writing it by default and have /var/lib/kubelet/config.json be a symlink to it, right?

That might be a better question for the MCO and cri-o folks. Certainly if it were the other way around and  /etc/containers/auth.json was a symlink, it would be broken for folks mounting the entire /etc/containers directory and expecting it to work.

The PR isn't done so doesn't help anything today.
In the meantime, yes you'll need to get access to the kubelet pull secret and explicitly use it.

Yeah, that PR being unmerged is why I wanted to get your opinion.
I'm trying to understand where on the continuum that PR is. Is it "we've agreed on the path location and high level goal, but just working out details"? Or is it "this is a proposal and we may reject it outright"?
If the former, that might be enough to convince us to go ahead and use that location within our controller filesystem and we'd explicitly configure /etc/containers/auth.json in the SystemContext. If this is the ultimate path, we would eventually be able to drop our /var/lib/kubelet/config.json mount since we are already mounting /etc/containers to pick up its other configuration.
On the other hand, if that /etc/containers/auth.json location itself is still up in the air, or if there's a chance its semantics would be different than "system-wide credentials", then maybe our project should choose our own filesystem location and then configure our types.SystemContext explicitly with_that_ path.

I think it'd probably be a good idea to wait until the location is codified upstream before just starting to write a file there.
In the short term especially for OCP I think /var/lib/kubelet/config.json (on the node) and the pull global secret (in the apiserver) are going to be canonical/preferred for quite some time.

@anik120 @skattoju Given Colin's answer above, I propose we mount /var/lib/kubelet/config.json from the node into our pod at /etc/operator-controller/auth.json and then hardcode our controller to set that path in the SystemContext (can't remember if we need to check to see if the file exists first).
If the file location on the node ever changes, we can just change our hostPath volume definition to use the new location without affecting our mount path inside the container filesystem (it would remain /etc/operator-controller/auth.json)

I believe this epic is complete. Are we good to close this?

I agree. Going to close this epic.

We need to a follow up epic for supporting private bundle and catalog images via API field.


Fixes #1129

Related Work Items: #1129

What's going on here? I see you've just deleted a method that intended to convert. Did it not need converting all along?

@Brennan1994 please take a look at the issue? I think the answers to your questions are there.


Coordinate System Framework

The Coordinate System Framework
To fix the position of any astronomical object, this coordinate system framework provides tools to assign a different pair of numbers to every point in the sky.
Each system takes its name from the fundamental plane which it uses as a reference
This framework contains
Base class coord_sys
and the four Coordinate System
1. Equatorial Coordinate System equatorial_coord.hpp
2. Horizon Coordinate System horizon_coord.hpp
3. Ecliptic Coordinate System ecliptic_coord.hpp
4. Galactic Coordinate System galactic_coord.hpp

@lpranam
The framework is complete and respective tests has been created.
Regarding checks do you want me to use Concepts?
If yes then I'll make this PR Ready for Review and you can review it and give approval.
For concept checking classes I'll open a new Issue and PR.
I'll complete Concept Checking and then you can merge both the PR's.

[ ] Waiting for @lpranam approval of Coordinate System Framework and Tests.

Concept checking classes for Coordinates Framework


does docker work?

can i pull homeassiant with docker?

no. Docker needs root & some kernel level modifications


Support for volume configurations

With k8s 1.20 removing PodPresets we no longer have a way to add volume's externally to apicurio-registry-operator's configuration so we'd like to extend the operator with support for that feature.
I'm working on a PR for this feature request.

Hi @JJJJJones Could you please help me understand better your use case? Why do you need to attach volumes to the operator pod? I would help me review you PRs. Thanks!

Hello @jsenko, more than happy to try and explain. It's advised to use ReadOnlyRootFilesystem to improve pod security but apicurio-registry needs R/W access to /tmp. To address this without disabling ReadOnlyRootFilesystem we've been adding an EmptyDir volume at /tmp of the apicurio-registry pods via a PodPreset. With PodPresets going away in k8s 1.20, we'll need the ability to add volumes to apicurio-registry pods through the operator instead. I hope this gives you a better understanding of what we're doing and why.

PR merged. Thank you!


(maint) Typos

@devlead this is dependent on this other PR: https://github.com/cake-contrib/Cake.Slack/pull/28


Form not initializing when store is updated by a dispatch call

I have a form that i am initializing the fields from a dispatch call to my server. however, the form initializes before the values are returned from the server and never updates. i make a call to getUser() within componentWillMount().  i see the values i want in the store after the call to the server is completed but the form does not re-initialize. is an expected behavior? is there a way to tell the form to update the initial values?
const mapStateToProps = (state) => {
    return {
        initialValues: state.user
    };
};

const mapDispatchToProps = (dispatch) => {
    return {
        getUser: () => {return dispatch(actions.getUser()); }
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(AccountSettings);

I am having the exact same problem. I am loading initial values but I need to make value changes to the form in order to submit it and pass the validation.
Also take a look at this example: http://redux-form.com/6.3.1/examples/initializeFromState/
After clicking on LOAD, you still can not submit the form unless you make a value change.
Anyone can shed a light on this?
Thanks

@timurcatakli the reason you cannot press submit until a value changes is because the form is "pristine"  http://redux-form.com/6.3.1/docs/api/Props.md/
i think i have a solution to my issue - i will call initialize when my action to get the data returns. if this does not work well for a good user experience, i will change the user workflow to make sure the data is in the store before the they see the form.

Thanks :-)


Graceful shutdown for scalar ledger

Description
https://scalar-labs.atlassian.net/browse/DLT-9158

@tei-k Why is it still in the draft?

@feeblefakie
No more need sleep in preStop, So close this PR.


Not all required considered in allOf

Not all fields that should be non-null are in a spec like this for object B:
components:
  schemas:
    A:
      type: object
      required:
        - a
      properties:
        a:
          type: string
        b:
          type: string
    B:
      allOf:
        - $ref: '#/components/schemas/A'
        - type: object
          required:
            - b

I'd expect code something like this:
data class A(val a: String, val b: String?)
data class B(val a: String, val b: String)

Instead I get:
data class A(val a: String, val b: String?)
data class B(val a: String, val b: String?)

Kudos on your stressing/contributions to this library. Features that were originally best-effort are definitely getting revisited/improved for the first time in years! :)

I'm throwing a couple thousand lines of yml at it with all sorts of things in it :D Likely I also have some time on contributing things.

Just noticed that having unknown fields in the required list also does not lead to errors or warnings.

I have expanded the example set for allOf and do not see an issue here. I'm not convinced the sample input you give is valid, this object looks exotic:
type: object
required:
  - b

I can say that I'm definitely not a fan of the pattern (base model like A with non-required fields and derived models like B (allOf) that merely makes fields require), but we do currently have that in one of our larger OAI specs and I haven't seen anything in the JSON-Schema spec that disagrees with that pattern.
As far as I understoof allOf without discriminator, you would practically merge all of the component models in the defined order and generate the resulting model.


[FEATURE] Add a new command to add content .infisicalignore to file from pull request comment

Description
We need to create a new command for the GitHub PHP bot that will automate the process of adding secrets information from specific comments in pull requests into the .infisicalignore file. The content to be copied will be parsed from pull request comments and pushed back to the same branch of the pull request.
Functionality:

Comment Identification:

The bot will search for comments in pull requests containing the pattern:<!-- add-pr-comment:secrets-result -->

Content Extraction:

The bot will extract the content wrapped inside the following <details> block:  <details>
    <summary>🐾 Secrets fingerprint</summary>
    ```txt
    <secrets-data>
    ```
  </details>

Example of secrets data to be extracted:b529aaec8e2f6d2cd7aed2b8f94e31f4ee7f19bf:.github/workflows/build.yml:generic-api-key:49
48c1a06efe07f54cd8c1fe9f6f20979caffa7633:.github/workflows/build.yml:generic-api-key:43
698cfc7c181c64a4970f811877c8065e3e18fae0:.github/workflows/publishFTP.yml:generic-api-key:20
a88f791d81edc7a6ca7a9549c351d28507dc95eb:.github/workflows/build.yml:generic-api-key:35
bd236a4682d40467de1340acc16d3965bc5475b7:.github/workflows/build.yml:generic-api-key:35

File Handling:

The bot will check if the .infisicalignore file already exists at the root of the repository.

If the file exists: Merge the new content with the existing content, ensuring that duplicates are removed.
If the file does not exist: Create a new .infisicalignore file and add the extracted content.

Commit and Push:

After updating the .infisicalignore file, the bot should commit the changes and push them back to the same branch of the pull request.

Acceptance Criteria:

The bot successfully identifies comments containing the <!-- add-pr-comment:secrets-result --> pattern.
The bot extracts the secrets information from the comment in the expected format.
The .infisicalignore file is either created or updated at the root of the repository.
No duplicate entries are added to the .infisicalignore file.
The changes are committed and pushed to the origin pull request branch automatically.

To modify the code to commit and push changes using the GitHub REST API instead of standard Git commands, you need to use the GitHub API to:

Get the latest commit on the branch.
Create a blob (which stores the new file content).
Create a new tree based on the previous commit tree with the updated file.
Create a new commit.
Update the branch to point to the new commit.

Here’s how you can do it step by step:
Sample code logic

[!CAUTION]
This code is just an example, not a functional code!

<?php

// Required: GitHub API token and repository details
$githubToken = 'your-github-token';
$repositoryOwner = 'repo-owner';
$repositoryName = 'repo-name';
$pullRequestNumber = 123; // Replace with the actual pull request number
$branchName = 'pull-request-branch'; // Replace with the actual branch name

// GitHub API endpoints
$baseApiUrl = "https://api.github.com/repos/$repositoryOwner/$repositoryName";
$pullRequestCommentsUrl = "$baseApiUrl/issues/$pullRequestNumber/comments";
$refUrl = "$baseApiUrl/git/refs/heads/$branchName";
$commitUrl = "$baseApiUrl/git/commits";
$treeUrl = "$baseApiUrl/git/trees";
$blobUrl = "$baseApiUrl/git/blobs";

// Step 1: Fetch pull request comments
function fetchPullRequestComments($url) {
    $response = doRequestGitHub($url);
    $data = json_decode($response->body, true);
    return $data;
}

// Step 2: Extract secrets content from a specific comment
function extractSecretsFromComment($comments) {
    foreach ($comments as $comment) {
        if (strpos($comment['body'], '<!-- add-pr-comment:secrets-result -->') !== false) {
            preg_match('/```txt(.*?)```/s', $comment['body'], $matches);
            if (isset($matches[1])) {
                return trim($matches[1]);
            }
        }
    }
    return null;
}

// Step 3: Get the last commit SHA on the branch
function getLastCommitSha($refUrl) {
    $response = doRequestGitHub($refUrl);
    $data = json_decode($response->body, true);
    return $data['object']['sha'];
}

// Step 4: Get the tree SHA of the last commit
function getCommitTreeSha($commitSha, $commitUrl) {
    $response = doRequestGitHub("$commitUrl/$commitSha");
    $data = json_decode($response->body, true);
    return $data['tree']['sha'];
}

// Step 5: Create a new blob for the .infisicalignore file
function createBlob($content, $blobUrl) {
    $data = json_encode([
        'content' => $content,
        'encoding' => 'utf-8'
    ]);
    $response = doRequestGitHub($blobUrl, $data);
    return json_decode($response, true)['sha'];
}

// Step 6: Create a new tree with the updated .infisicalignore file
function createTree($treeSha, $blobSha, $filePath, $treeUrl) {
    $data = json_encode([
        'base_tree' => $treeSha,
        'tree' => [
            [
                'path' => $filePath,
                'mode' => '100644',
                'type' => 'blob',
                'sha' => $blobSha
            ]
        ]
    ]);
    $response = doRequestGitHub($treeUrl, $data);
    return json_decode($response, true)['sha'];
}

// Step 7: Create a new commit
function createCommit($commitMessage, $treeSha, $parentCommitSha, $commitUrl) {
    $data = json_encode([
        'message' => $commitMessage,
        'tree' => $treeSha,
        'parents' => [$parentCommitSha]
    ]);

    $response = doRequestGitHub($commitUrl, $data);
    return json_decode($response, true)['sha'];
}

// Step 8: Update the branch reference to point to the new commit
function updateBranchReference($newCommitSha, $refUrl) {
    $data = json_encode([
        'sha' => $newCommitSha,
        'force' => true
    ]);

    $response = doRequestGitHub($treeUrl, $data, "PATCH");
}

// Step 9: Merge content into .infisicalignore and remove duplicates
function mergeInfisicalIgnore($newContent) {
    $ignoreFilePath = '.infisicalignore';
    $existingContent = '';

    if (file_exists($ignoreFilePath)) {
        $existingContent = file_get_contents($ignoreFilePath);
    }

    $mergedContent = $existingContent . "\n" . $newContent;
    $mergedLines = array_unique(array_filter(explode("\n", $mergedContent)));

    return implode("\n", $mergedLines);
}

// Main execution
$comments = fetchPullRequestComments($pullRequestCommentsUrl);
$secrets = extractSecretsFromComment($comments);

if ($secrets) {
    // Step 3: Get last commit SHA and tree SHA
    $lastCommitSha = getLastCommitSha($refUrl);
    $treeSha = getCommitTreeSha($lastCommitSha, $commitUrl);

    // Step 4: Merge content into .infisicalignore
    $updatedContent = mergeInfisicalIgnore($secrets);

    // Step 5: Create a blob for the updated .infisicalignore file
    $blobSha = createBlob($updatedContent, $blobUrl);

    // Step 6: Create a new tree with the updated .infisicalignore
    $newTreeSha = createTree($treeSha, $blobSha, '.infisicalignore', $treeUrl);

    // Step 7: Create a new commit
    $newCommitSha = createCommit('Update .infisicalignore with secrets from PR comment', $newTreeSha, $lastCommitSha, $commitUrl);

    // Step 8: Update the branch reference to the new commit
    updateBranchReference($newCommitSha, $refUrl);

    echo "Updated .infisicalignore and pushed changes to branch: $branchName\n";
} else {
    echo "No secrets found in the pull request comments.\n";
}

?>

Steps

Get the last commit SHA: getLastCommitSha() retrieves the current commit SHA from the branch.
Get the tree SHA from the last commit: getCommitTreeSha() fetches the tree associated with the commit.
Create a new blob: createBlob() uploads the updated content for .infisicalignore as a blob and returns the blob SHA.
Create a new tree: createTree() creates a new tree that includes the updated .infisicalignore using the blob SHA.
Create a new commit: createCommit() creates a new commit with the new tree and points it to the parent commit.
Update the branch: updateBranchReference() updates the branch to point to the new commit SHA.


Replace BIO_printf with ASN1_STRING_print in GENERAL_NAME_print

Fixes #8997
CLA: trivial
Checklist

These changes are not trivial.  The CLA process will need to be followed.

I'll email in my ICLA tonight.

I've put in the recommended changes and submitted the ICLA

@acheevbhagat Why did you close this, it has not yet been merged?

Because I'd messed up the whole log pretty bad trying to squash the commits. I'm not really that great at git. I deleted and recreated my fork, and ported over my changes to the new fork and I'm gonna put in a new pull request, is that alright?

I've submitted the new PR #9101

Because I'd messed up the whole log pretty bad trying to squash the commits. I'm not really that great at git. I deleted and recreated my fork, and ported over my changes to the new fork and I'm gonna put in a new pull request, is that alright?

We'll have to move the approvals from here over to the new PR


Add an equalizer

My speakers are too bassy so I use an EQ extension to fix this (http://lab.ejci.net/Chrome-Audio-EQ/). When I use streamus it is unnaffected by the EQ extension and I can't fix my speakers unbalaced bass.

I'm not allowed to modify the sound of YouTube videos except through YouTube's API (aka muting / volume).


Remove periodSeparatedString()

The performance benefits of raw enumeration are slight and the standard library implementation could surpass it at any time. We can favor less code (and fewer required tests) instead!

Can you please keep the tests? And maybe even keep the function periodSeparatedString(), just implement it as you suggested.

I'll have to leave that to you. I'm sick as a dog right now but was browsing and wanted to help simplify. Good luck!

Sounds good, thanks :)


web ntsf crashed

RangeError: Incorrect locale information provided
at log (https://ntfy.sh/static/media/index-9e24212a.js:320:286)
at lse (https://ntfy.sh/static/media/index-9e24212a.js:281:326)
at isMounted (https://ntfy.sh/static/media/index-9e24212a.js:19518:38)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:44027:40)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:39763:40)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:39691:40)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:39545:40)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:35913:40)
at callback (https://ntfy.sh/static/media/index-9e24212a.js:34864:40)
RangeError: Incorrect locale information provided
at at use (https://ntfy.sh/static/media/index-9e24212a.js:326:238)
at     at div
at     at https://ntfy.sh/static/media/index-9e24212a.js:55:6185
at     at https://ntfy.sh/static/media/index-9e24212a.js:61:22350
at     at div
at     at https://ntfy.sh/static/media/index-9e24212a.js:55:6185
at     at https://ntfy.sh/static/media/index-9e24212a.js:61:20669
at     at div
at     at div
at     at t (https://ntfy.sh/static/media/index-9e24212a.js:263:1464)
at     at IR (https://ntfy.sh/static/media/index-9e24212a.js:286:86948)
at     at ise (https://ntfy.sh/static/media/index-9e24212a.js:286:86525)
at     at rse (https://ntfy.sh/static/media/index-9e24212a.js:286:86333)
at     at oK (https://ntfy.sh/static/media/index-9e24212a.js:240:3933)
at     at pK (https://ntfy.sh/static/media/index-9e24212a.js:240:6226)
at     at main
at     at https://ntfy.sh/static/media/index-9e24212a.js:55:6185
at     at https://ntfy.sh/static/media/index-9e24212a.js:61:13098
at     at Rde (https://ntfy.sh/static/media/index-9e24212a.js:409:15094)
at     at div
at     at https://ntfy.sh/static/media/index-9e24212a.js:55:6185
at     at https://ntfy.sh/static/media/index-9e24212a.js:61:13098
at     at Ode (https://ntfy.sh/static/media/index-9e24212a.js:409:13968)
at     at oK (https://ntfy.sh/static/media/index-9e24212a.js:240:3933)
at     at gK (https://ntfy.sh/static/media/index-9e24212a.js:240:6851)
at     at Cce (https://ntfy.sh/static/media/index-9e24212a.js:372:5834)
at     at i (https://ntfy.sh/static/media/index-9e24212a.js:250:3140)
at     at GN (https://ntfy.sh/static/media/index-9e24212a.js:61:18729)
at     at YN (https://ntfy.sh/static/media/index-9e24212a.js:61:19114)
at     at D3 (https://ntfy.sh/static/media/index-9e24212a.js:61:29727)
at     at fK (https://ntfy.sh/static/media/index-9e24212a.js:240:6285)
at     at _K (https://ntfy.sh/static/media/index-9e24212a.js:249:744)
at     at Pde (https://ntfy.sh/static/media/index-9e24212a.js:409:12627)
at     at Suspense
at     at Ade (https://ntfy.sh/static/media/index-9e24212a.js:409:12872)

Duplicated #841


Changing position of inputToolBar to same position where it stays when keyboard is up.

I want to add smileys popover at the same position where the keyboard stay when the keyboard is up. I read the issue #94 but they give the alternate solution. I am adding one popover smiley.

Thanks @mukul3062 ! 😄
What exactly is your question? 😅

First thing:- I want to change the position of inputToolBar. So that when I open the smiley popover then inputToolBar goes up and smileys popOver lies below that inputToolBar. Formally, I want to change the keypad with my popOver smiley.
Second thing:- I also don't want to hide the messages behind the popOver.
Anyway, great work by you.
Thank you.

I want to change the position of inputToolBar

If you look at JSQMessagesViewController.m, you should be able to override the methods that change the frame.

I want to change the keypad with my popOver smiley.

To my knowledge, this would require a custom keyboard extension.

I also don't want to hide the messages behind the popOver.

Similarly, you'll want to override the collectionView.contentInsets when the keyboard appears.

Thanks


How to package complex programs, e.g. QuteBrowser?

@kayhayen Kay, hi again! As you can see, these  last few days I've been posting quite a lot of stuff here on github, hope you don't mind it :D .
To be honest, this project of yours has catched my attention quite a lot and the fact I've been able to package already few pyqt apps with it has given me a bit extra of motivation to testing more and more... ;D
Anyway, here's the thing, it's been proved to me that nuitka can handle/package trivial code quite well so now I'm interested on packaging non-trivial hello world apps. So the idea is trying to package a well-known app in pyqt land, qutebrowser. To do so I've spawned this command and as you can see nuitka is reporting quite a lot of warnings, if we grep them:
Nuitka:WARNING:Use '--plugin-enable=pylint-warnings' for: Understand PyLint/PyDev annotations for warnings.
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\app.py:56: Cannot find 'hunter' in package 'qutebrowser' as absolute import (tried hunter).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\misc\utilcmds.py:28: Cannot find 'hunter' in package 'qutebrowser.misc' as absolute import (tried hunter).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\misc\utilcmds.py:178: Cannot find 'PyQt5.QtWebKit' in package 'qutebrowser.misc' as absolute import (tried PyQt5.QtWebKit).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\utils\qtutils.py:39: Cannot find 'PyQt5.QtWebKit' in package 'qutebrowser.utils' as absolute import (tried PyQt5.QtWebKit).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pkg_resources\_vendor\appdirs.py:484: Cannot find 'com' in package 'pkg_resources._vendor' as absolute import (tried com).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pkg_resources\_vendor\pyparsing.py:89: Cannot find 'ordereddict' in package 'pkg_resources._vendor' as absolute import (tried ordereddict).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\utils.py:182: Cannot find 'pretty' in package 'jinja2' as absolute import (tried pretty).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\debug.py:22: Cannot find '__pypy__' in package 'jinja2' as absolute import (tried __pypy__).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\debug.py:105: Cannot find 'jinja2.debugrenderer' in package 'jinja2' as absolute import (tried jinja2.debugrenderer).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\yaml\cyaml.py:5: Cannot find '_yaml' in package 'yaml' as absolute import (tried _yaml).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pygments\lexer.py:153: Cannot find 'chardet' in package 'pygments' as absolute import (tried chardet).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\browser\webkit\webkitinspector.py:23: Cannot find 'PyQt5.QtWebKitWidgets' in package 'qutebrowser.browser.webkit' as absolute import (tried
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\encutils\__init__.py:466: Cannot find 'chardet' in package 'encutils' as absolute import (tried chardet).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\cssutils\_fetchgae.py:7: Cannot find 'google.appengine.api' in package 'cssutils' as absolute import (tried google.appengine.api).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\cssutils\_fetchgae.py:7: Cannot find 'google.appengine' in package 'cssutils' as absolute import (tried google.appengine).
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\cssutils\_fetchgae.py:7: Cannot find 'google' in package 'cssutils' as absolute import (tried google).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\browser\webkit\webkitelem.py:23: Cannot find 'PyQt5.QtWebKit' in package 'qutebrowser.browser.webkit' as absolute import (tried
Nuitka:WARNING:d:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pypeg2\__init__.py:40: Cannot find 'ordereddict' in package 'pypeg2' as absolute import (tried ordereddict).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\misc\checkpyver.py:33: Cannot find 'Tkinter' in package 'qutebrowser.misc' as absolute import (tried Tkinter).
Nuitka:WARNING:D:\sources\personal\python\apps\nuitka_tests\pyqt\qutebrowser\qutebrowser\misc\checkpyver.py:34: Cannot find 'tkMessageBox' in package 'qutebrowser.misc' as absolute import (tried tkMessageBox).
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\loaders.py:472' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\utils.py:142' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\jinja2\utils.py:143' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pygments\formatters\__init__.py:39' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\pygments\lexers\__init__.py:41' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\yaml\constructor.py:505' may require use of '--recurse-directory'.
Nuitka:WARNING:Unresolved '__import__' call at 'd:\sources\personal\python\apps\nuitka_tests\venv\lib\site-packages\yaml\constructor.py:521' may require use of '--recurse-directory'.

So, could you advice about how to package this app properly with nuitka? I'm sure you need to use the argument recurse-directory like in use case3... thing is, because each attempt of packaging is quite expensive over here i'd like to exactly know how to use that syntax to address each one of the reported warnings so I don't waste my time just trying random things...
So, I hope you can advice.
PS: And also, let me know if opening so many issues can be annoying to you, as I understand there is already quite a lot on your plate over there... I consider opening github issues is a proof of people getting engaged with your project so it may be considered as a "motivational" factor, but who knows... so yeah, just let me know ;D
Best,
Bruno

So, my mid term vision is to integrate with distutils simply. Then you do python setup.py bdist_nuitka and it is supposed to work.
Right now, it picks up the list of packages. On develop, this is using the new options --include-package to pick up all the packages, master is pretty much not good yet for that.
But the idea is being that if it's a large project and has proper setuptools integration for making a wheel, then Nuitka will just learn to handle it more nicely.
The good thing then, is that also, setup.py documents what is your code, and what is not. Right now, the warnings trigger on external code, and there is a lot of whitelisting, but never enough. The idea of those warnings is to find dynamic imports in your code, and tell you about it. They are not very good at that though. I think everybody just ignores them after being disturbed by them. I will have to consider to require the user to make it clear what part of the code he owns and what not for them to get a warning at all.
If you checkout tests/distutils you will see that there is a basic test for a small project that demonstrates that producing a wheel, installing it, code runs the same. I think it must be expanded to make sure integrated modules are really there, this was more of an infrastructure I added for now.
Since there is no big project that does not integrate with setuptools, I am hopeful that solves the interface issues once and for all.

@kayhayen Ok, if I've understood correctly what you describe is to be achieved in the nearest future... So basically in order to package large apps like QuteBrowser the user will just have to run python setup.py bdist_nuitka and everything will be packaged magically as nuitka will use the implicit information extracted from setup.py, is this correct? But again... that's something to be addressed by a future release of nuitka and right now is just a proof of concept, isn't?
So, for the time being, with the current nuitka release (ie: 0.5.30rc7), how would you suggest to make a running executable of QuteBrowser?
In order to check how the --recurse-directory flag works ok I've created a simple test and everything works as expected, plugins are loaded ok. Btw, is it possible to compile the plugins as well so I don't need to distribute plugins as python source code?

So, could you please advice about to build qutebrowser properly?
Regards.
Bruno

These import warnings of yours surely are new to me and look like an issue to be created.
The "nuitka_tests" element makes me think it's in that git repo I already cloned before. Is that correct? Anyway, please open an issue for that. The warning might be harmless but it surely indicates an error there. The "spec" is kind of mysterious to me anyway. Could well be wrong.

As for the error dialog, is this PyQt5.QtOpenGL something pip installable? There is nothing in requirements.txt for that.

And yes, you are correct. The vision is zero Nuitka config required. Proof of concept sounds a bit harsh, but it definitely might not be complete yet.

PyQt5 isn't in qutebrowser's requirements.txt because people often want a setup where they install their distribution's PyQt5 (because it comes with proprietary codecs, or QtWebKit support, or they use an architecture which is not x86_64) but install the rest via pip.

Questions should remain open until they are answered to my satisfaction. So far development is heading towards resolving this, but clearly this is not as easy as it should be.
Basically my vision is for distutils to work out of the box with Nuitka. Getting there, but lacking a lot still.

I have added documentation for the distutils integration, it's currently on factory, but will be in 0.6.18, as a question, I think this is too long winded to get there. I will open a new one and answer with a link to the new documentation once we get there for this to be stable.


Establish storage for calculated product footprints

Priority: Low;
Estimated person-hours: 5
Volunteer(s)/Candidate(s): Marie de Saxcé (GitHub name unknown - still valid?)
Functional specifications: Although product footprints may be produced on the fly from the the Direct Requirements Matrix, the calculated footprints may need to be stored (temporarily) to allow more speedy access.
Technical specifications: Provide a store for calculated product footprints in a form that makes them quickly accessible for web-queries, e.g. as csv files.
Relates to #10, copied from here with minimal editing for quality.

The volunteer is not valid any longer.
I'd keep links to definitions in glossary to facilitate understanding of concepts, e.g. the Direct Requirement Tables

Thanks @MicDr, it's updated now


Android Basics: tip-calculator

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-tip-calculator?hl=ja&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-2-pathway-1%3Fhl%3Dja%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-tip-calculator#2
In which task and step of the codelab can this issue be found?
Enable view binding
Describe the problem
In my environment, this code doesn't work.
buildFeatures {
    viewBinding = true
}

Next code works correctly instead.
buildFeatures {
    viewBinding true
}

Versions
Android Studio version: Android Studio Arctic Fox | 2020.3.1
Build #AI-203.7717.56.2031.7583922, built on July 27, 2021
API version of the emulator:  19

@mutoxu-N
Thank you for reaching out to us. If you are using the Groovy for gradle scripts in this case your suggested solution to remove the equal sign works well. For Kotlin gradle the code snippet provided in the codelab is correct. Hope this clarifies the situation.
Happy coding!


Add README

@abays @stuggi thanks for the feedback. I think I got most of the changes with a few notes we can follow up on in other commits perhaps.


Chore: implement common traits

Description
All types should when possible implement the common traits.
https://rust-lang.github.io/api-guidelines/interoperability.html#c-common-traits
This allows consumers of the library to derive these traits themselves when needed rather than having to make manual implementations or avoid them.
Many of the types in ratatui do not implement these traits that could do so (particularly Hash is absent most of the time).
To Reproduce
Example: Try to create a type that derives Hash and has a Style field
Expected behavior
All common traits that make sense from https://rust-lang.github.io/api-guidelines/interoperability.html#c-common-traits should be implemented

Copy - Not possible for some items
Clone
Eq
PartialEq
Ord - Usually not necessary
PartialOrd - Usually not necessary
Hash
Debug
Display - Not sure what this should look like TBH
Default - Sometimes not

Hi @joshka , I have one question:
Is is OK to split this task up? I did small search and I have found too many structs that scatter around the code base, if someone raise a PR with trivial changes in different files and logic, it would be hard for others to review I guess. WDUT?

Most of these should be derived implementations.
Perhaps make a quick checklist comment in this issue and update it with progress?

Hi @joshka, I'm back from my summer school homework. I read your reviews carefully and I learn that I have done some bad practice in the last WIP PR. Here is my latest idea about this task:

How to split it up?

I've learned the lesson that adding traits won't be so easy like adding simple text in some derived brackets. So I think we should focus on one or two traits in one PR, this can reduce much burden of review and context-shifting discussion.

Note my comment about ordering. Of these, I'd probably say that Debug and Default are the two most important, followed by Clone and Copy. Being able to glance at a derives list and see that these are implemented is something I personally often rely on.

I agree, so I suppose we can split this task into:
[ ] Debug and Default,
[ ] Clone and Copy: Copy is not very recommended for complicated structs, this needs discussion.
[ ] Hash: f64 can't be hash by default, so this would need more discussion.
[ ] Eq, PartialEq, Ord, PartialOrd: may be small cuz not widely needed
[ ] Display: The display pattern would be way too long to discuss&review.

How to order traits?

Perhaps use the following order: Debug, Default, Clone, Copy, Eq, PartialEq, Ord, PartialOrd, Hash.

Since rust-fmt won't provide auto-mated style guild (https://github.com/rust-lang/style-team/issues/154) I agree with your suggestion, and I'll keep following this order in the future.

What's next?

I'll change https://github.com/ratatui-org/ratatui/pull/339 into a simpler one focusing on Debug and Default.

Tracker

[x] Debug and Default: https://github.com/ratatui-org/ratatui/pull/339
[ ] Clone and Copy:
[ ] Hash:
[ ] Eq, PartialEq, Ord, PartialOrd:
[ ] Display:

I've been stuck on this Box<dyn Grid> many times, it's the only one that we can not attach any other common trait on it. I'd like to pick it up for more ideas, how should we handle it? @joshka
https://github.com/ratatui-org/ratatui/blob/bf4944683d6afb6f42bec80a1bd308ecdac50cbc/src/widgets/canvas/mod.rs#L179-L183
https://github.com/ratatui-org/ratatui/blob/bf4944683d6afb6f42bec80a1bd308ecdac50cbc/src/widgets/canvas/mod.rs#L248-L258
https://github.com/ratatui-org/ratatui/blob/bf4944683d6afb6f42bec80a1bd308ecdac50cbc/src/widgets/canvas/mod.rs#L45-L52

I've been stuck on this Box<dyn Grid> many times, it's the only one that we can not attach any other common trait on it. I'd like to pick it up for more ideas, how should we handle it? @joshka

I'm not sure TBH. I'm fine with leaving this and implementing it when someone needs it.

@joshka, I'm SORRY I've been away from GitHub due to a difficult personal issue. I'm glad to know this issue has been closed after so much work of collaboration, It's so nice to work with you in Ratatui, thank you for all of your advice and quick reply!


[Feature] Support tracking algorithms

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Please describe the motivation of this PR and the goal you want to achieve through this PR.
Modification
Please briefly describe what modification is made in this PR.
BC-breaking (Optional)
Does the modification introduce changes that break the backward-compatibility of the downstream repos?
If so, please describe how it breaks the compatibility and how the downstream projects should modify their code to keep compatibility with this PR.
Use cases (Optional)
If this PR introduces a new feature, it is better to list some use cases here, and update the documentation.
Checklist

Pre-commit or other linting tools are used to fix the potential lint issues.
The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
If the modification has potential influence on downstream projects, this PR should be tested with downstream projects, like MMDet or MMCls.
The documentation has been modified accordingly, like docstring or example tutorials.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.25 out of 26 committers have signed the CLA.:white_check_mark: RangiLyu:white_check_mark: JosonChan1998:white_check_mark: zwhus:white_check_mark: okotaku:white_check_mark: BIGWangYuDong:white_check_mark: hhaAndroid:white_check_mark: zgzhengSEU:white_check_mark: yarkable:white_check_mark: Zheng-LinXiao:white_check_mark: LYMDLUT:white_check_mark: yechenzhi:white_check_mark: bobo0810:white_check_mark: IRONICBo:white_check_mark: freepoet:white_check_mark: minato-ellie:white_check_mark: lovelykite:white_check_mark: xiejiajiannb:white_check_mark: vansinhu:white_check_mark: keyakiluo:white_check_mark: wufan-tb:white_check_mark: Czm369:white_check_mark: xin-li-67:white_check_mark: gihanjayatilaka:white_check_mark: i-aki-y:white_check_mark: RangeKing:x: yalibianYou have signed the CLA already but the status is still pending? Let us recheck it.


Response.text and Response.json should have default headers

Default headers like server info and DateTime informations

closing in favor of #38


Update: README.md

Title and Issue number

Title :
Issue No. :
Code Stack :
Close #<issue_no>

Checklist:

[] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md
[X] I have updated the Index.html file for my contribution

This change is not required.


Rob: Watch instasmarter.com

Rob requests the watch of the watch_keyword instasmarter\.com. See the Metasmoke search here and the Stack Exchange search here.

instasmarter\.com has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Uncaught spam post here

!!/approve

Coverage remained the same at 65.195% when pulling 57cbc1f9e9d6d5ee38c81d16f75627142b7e2831 on auto-blacklist-1522428391.6787941 into 80424ca272df384b44ab93cad8eabd70fb85609b on master.


doc: emacs-ycmd requires <IP_ADDRESS> to be in the NO_PROXY env variable

At work, emacs-ycmd did not work for me at all till today.  I would always see in the debug logs.
HTTP RESPONSE CONTENT

nil

After looking at https://github.com/abingham/emacs-ycmd/issues/404 , I added <IP_ADDRESS> to the NO_PROXY and no_proxy environment variables and was able to get emacs-ycmd to work. Please add this information regarding NO_PROXY and no_proxy variable setup to the documentation.
I did not face this issue with the YouCompleteMe vim plugin.
regards,
Venkat

emacs-ycmd could automatically set the no_proxy environment variable like YCM does.

I see. Thanks @micbou for the hint. Since we are getting this report from time to time I guess it would be a good idea to set the no proxe environment variable for the ycmd communication

See #438
The PR add the no_proxy variable to the envrionment to bypass proxies


[GEODE-2414] Ignore a consistently failing test.

This test only seems to be failing on Linux. I haven't figured out the
cause yet. Ignore it until I have time to fix it properly.

@kirklund I'm not a committer; you're welcome to commit this.

I'll merge it in.


Ability to sort tasks by a criteria (creation data, name, updation date, etc.)

It needs to be supported by a REST server first
After UI controls have to be added

Hello, I have a couple of questions:

Is this issue being worked on? Any estimate on when the functionality could be in place?
We would highly benefit from a possibility to sort the tasks based on priority, would that be solved with this issue?

Hi, @katab
Right now we aren't working for the feature.
Sorting tasks by priority is possible, but first we need to introduce task priority. We haven't considered such a feature, but I suppose it is implementable.

Thanks for your reply @bsekachev! Is there a way to vote for this issue or affect the priority in any way?

@katab , the best way to vote is to send us a PR with the required functionality. Also you can add +1 to the issue.

Sorry for my ignorance, do I +1 this issue by giving the first comment a "thumbs up" or is there another way? (New to using github in this way)

The following filters below are supported. Need add 'created date', 'updated date'.

Now tasks/projects/jobs have advanced filtration, I believe we can close the issue.


Support objects

Describe the solution you'd like
I'd love to use cx in place of clsx but I need objects to be accepted (along with arrays).
setClasses(cx({"text-red-600": isInvalid}))

Are you interested in having this in cx?

You can achieve similar behaviour at the moment with the current API:
className={cx(
  isInvalid && "text-red-600",
)}

So to be totally honest, this isn't something I'm willing to invest time implementing. Thanks for taking the time to write up this suggestion though 🙏🏼

@joe-bell Okay, back to clsx then.

{
	"bg-red-600 text-white": errors.length > 1,
	"bg-white text-blue-600: errors.length <= 1,
	"hover:bg-purple-600 hover:shadow-sm": shouldApplyHoverStyling
}

This kind of stuff can get complicated and &&-ing everything is harder to read.

Alternatively, you could try this in the meantime?
cx(
  ...(errors.length > 1 && [
    "bg-red-600",
    "text-white"
  ]),
  ...(errors.length <= && [
    "bg-white",
    "text-blue-600"
  ]),
  ...(shouldApplyHoverStyling && [
    "bg-purple-600",
    "hover:shadow-sm"
  ])
)


Extend field type

It's posible extend field type for add new field types.
For example:

icon type with a selector of item ( i use: http://codeb.it/fonticonpicker/);
Selector of a entire collection. Not a field or fields in a collection

etc...

+1 the filed type is not enough, such as multiple select and so on, so how can i extend the field types?


fix(vt): lock terminal.Read/Write/String

sync.Mutex to lock Read, Write, and String terminal methods

This is already in the vt branch

ah cool, thank you! 🙏🏻


feat: Add Metatags

🚀 Pull Request
🔗 Linked Issue

Closes #19
📝 Description

This PR features the addition of Opengraph Metatags to have preview Windows when linking the website and better searchability by Webscrapers
🛠 Changes Made

[x] Add Opengraph Meta Tags for Webscrapers and Searchengines

🧪 Testing

[x] Tested manually

📸 Screenshots (if applicable)

🔍 Additional Notes

✅ Checklist

[x] I have read the contributing guidelines
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

👥 Reviewer Checklist

[ ] The code change is focused and makes sense
[ ] The code adheres to our established coding standards
[ ] The changes are adequately tested
[ ] The documentation is updated to reflect the changes (if necessary)

💖 Thank you for contributing to Zufall! 💖

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


[LW-10004] add deleagtion tx

Context

We need a way to single delegate / undelegate to be able to see deposits in dapp connector

Proposed Solution

add delegation and undelegation

Important Changes Introduced

@VanessaPC it works and i see a build error for the test Dapp:

@DominikGuzei did you rebuild all packages? PersonalWallet was renamed to BaseWallet. If the issue is in dapp-connector-client package, please fix in a separate commit so that we can squash it after it's merged in the base branch.

@mkazlauskas yes, i did yarn & yarn build in the root before building the test Dapp

Looks good! There are some build errors though

I think that might be due to the e2e package being built before its dependencies? it works fine if you build all the packages and then try again.

@mkazlauskas also, nothing happens when i click "delegate" in the test Dapp - i used a preprod wallet which already has one delegation portfolio to one pool. Is that an issue, should it be a clean slate in order to work?

@VanessaPC @mkazlauskas also, nothing happens when i click "delegate" in the test Dapp - i used a preprod wallet which already has one delegation portfolio to one pool. Is that an issue, should it be a clean slate in order to work?

I believe this is fixed @DominikGuzei , @mkazlauskas I will fix the build, I'm currently looking at another bug on another branch.


[WIP] Add support for the Swift Package Manager

Resolves https://github.com/tuist/xcodeproj/issues/438
Short description 📝
With the introduction of Swift Package Manager support to Xcode projects, Apple has added new objects and attributes to existing models.
Solution 📦
Add support for those changes from XcodeProj.
Implementation 👩💻👨💻

[x] Add PBXProject.packages attribute.
[x] Add PBXNativeTarget. packageProductDependencies attribute.
[x] Define XCRemoteSwiftPackageReference model.
[x] Define XCSwiftPackageProductDependency model.
[x] Add PBXBuildFile.productRef attribute.
[x] Verify the optionality of the attributes.
[x] Update the ReferenceGenerator logic to generate the reference for the new objects.
[x] Add tests.
[ ] Add method to PBXProject to add a new Swift package to the project.

👍 nice work!
Mind if I push a fixture that includes local and remote package dependencies? From what I gathered Project.xcodeproj has been configured with all use cases tested via PBXProjIntegrationTests, I can update it to include some packages too - or is it best I create a stand alone project for this - e.g. ProjectWithSwiftPackageDependencies.xcodeproj?

I was curious what happens when you open a project with Swift packages in Xcode 10.2.1

Looks like the objectVersion changes to 52 when adding packages to protect against opening the project with an older version of Xcode.
 	classes = {
 	};
-	objectVersion = 50;
+	objectVersion = 52;
 	objects = {

Mind if I push a fixture that includes local and remote package dependencies? From what I gathered Project.xcodeproj has been configured with all use cases tested via PBXProjIntegrationTests, I can update it to include some packages too - or is it best I create a stand alone project for this - e.g. ProjectWithSwiftPackageDependencies.xcodeproj?

Sure, go for it @kwridan

Looks like the objectVersion changes to 52 when adding packages to protect against opening the project with an older version of Xcode.

I've updated Xcode.Default.objectVersion with that value.

@pepibumur I've pushed an update to the existing fixture to a separate branch as it seems the XcodeprojPropertyListDecoder is failing to read the project but wanted to second sanity check incase I was doing something silly.
https://github.com/tuist/xcodeproj/tree/wip/spm-support-fixture

I fixed the tests and pushed the changes in your branch to this branch.


Implement lazy retrieval of series from object store.

The bucket store fetches series in a single blocking operation from object storage. This is likely not an ideal strategy when it comes to latency and resource usage. In addition, it causes the store to buffer everything in memory before starting to send results to queriers.
This commit modifies the series retrieval to use the proxy response heap and take advantage of the k-way merge used in the proxy store.
cc @GiedriusS @bwplotka
Latest benchmarks
name                                                          old time/op    new time/op    delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8             57.4ms ±14%    38.1ms ± 1%  -33.58%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8            53.7ms ± 1%    38.2ms ± 1%  -28.85%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8        521ms ± 3%     431ms ± 1%  -17.17%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/1of10000000-8           3.80ms ± 1%    4.17ms ± 1%   +9.85%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/100of10000000-8         3.79ms ± 0%    4.19ms ± 3%  +10.66%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8    49.4ms ± 1%    44.3ms ± 1%  -10.45%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8            135µs ± 1%     137µs ± 0%   +1.71%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8          134µs ± 1%     137µs ± 1%   +2.05%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8    12.1ms ± 0%    12.8ms ± 1%   +5.39%  (p=0.029 n=4+4)

name                                                          old alloc/op   new alloc/op   delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8             60.9MB ± 0%    54.3MB ± 0%  -10.82%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8            60.9MB ± 0%    54.3MB ± 0%  -10.82%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8       1.29GB ± 0%    0.80GB ± 0%  -38.11%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/1of10000000-8           4.58MB ± 0%    6.06MB ± 0%  +32.40%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/100of10000000-8         4.58MB ± 0%    6.06MB ± 0%  +32.39%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8     120MB ± 3%      86MB ± 1%  -28.19%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8            200kB ± 0%     202kB ± 0%   +0.81%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8          200kB ± 0%     202kB ± 0%   +0.87%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8    46.8MB ± 0%    46.8MB ± 0%     ~     (p=0.057 n=4+4)

name                                                          old allocs/op  new allocs/op  delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8              9.61k ± 0%     4.65k ± 0%  -51.61%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8             9.71k ± 0%     4.76k ± 0%  -51.03%  (p=0.029 n=4+4)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8        10.0M ± 0%     11.0M ± 0%   +9.79%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/1of10000000-8            1.08k ± 0%     0.71k ± 0%  -34.19%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/100of10000000-8          1.11k ± 0%     0.75k ± 0%  -32.88%  (p=0.029 n=4+4)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8     1.00M ± 0%     1.10M ± 0%   +9.80%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8              282 ± 0%       293 ± 0%   +3.90%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8            282 ± 0%       293 ± 0%   +3.90%  (p=0.029 n=4+4)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8      168k ± 0%      168k ± 0%   +0.03%  (p=0.029 n=4+4)

[ ] I added CHANGELOG entry for this change.
[x] Change is not relevant to the end user.

Changes

Verification

Some benchmarks with batched retrieval
name                                                          old time/op    new time/op    delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8             54.5ms ± 2%    54.5ms ± 2%     ~     (p=1.000 n=5+5)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8            54.3ms ± 2%    54.6ms ± 2%     ~     (p=0.548 n=5+5)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8        510ms ± 1%     431ms ± 2%  -15.45%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/1of10000000-8           3.91ms ± 0%    3.86ms ± 1%   -1.28%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/100of10000000-8         3.90ms ± 1%    3.85ms ± 1%   -1.28%  (p=0.032 n=5+5)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8    50.3ms ± 2%    41.6ms ± 1%  -17.29%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8            134µs ± 1%     154µs ± 2%  +14.26%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8          135µs ± 1%     151µs ± 1%  +11.27%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8    12.2ms ± 1%    12.2ms ± 1%     ~     (p=0.421 n=5+5)

name                                                          old alloc/op   new alloc/op   delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8             60.9MB ± 0%    61.0MB ± 0%   +0.23%  (p=0.008 n=5+5)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8            60.9MB ± 0%    61.0MB ± 0%   +0.24%  (p=0.008 n=5+5)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8       1.29GB ± 0%    0.89GB ± 0%  -30.90%  (p=0.016 n=4+5)
BucketSeries/100000SeriesWith100Samples/1of10000000-8           4.58MB ± 0%    4.67MB ± 0%   +1.95%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/100of10000000-8         4.58MB ± 0%    4.67MB ± 0%   +1.94%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8     120MB ± 2%      84MB ± 1%  -30.20%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8            200kB ± 0%     277kB ± 0%  +38.16%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8          200kB ± 0%     276kB ± 0%  +38.01%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8    46.8MB ± 0%    47.1MB ± 0%   +0.62%  (p=0.008 n=5+5)

name                                                          old allocs/op  new allocs/op  delta
BucketSeries/1000000SeriesWith1Samples/1of1000000-8              9.63k ± 0%    11.36k ± 0%  +17.99%  (p=0.016 n=4+5)
BucketSeries/1000000SeriesWith1Samples/10of1000000-8             9.71k ± 0%    11.49k ± 0%  +18.35%  (p=0.008 n=5+5)
BucketSeries/1000000SeriesWith1Samples/1000000of1000000-8        10.0M ± 0%     12.1M ± 0%  +20.20%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/1of10000000-8            1.08k ± 0%     1.25k ± 0%  +15.90%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/100of10000000-8          1.11k ± 0%     1.29k ± 0%  +16.08%  (p=0.008 n=5+5)
BucketSeries/100000SeriesWith100Samples/10000000of10000000-8     1.00M ± 0%     1.21M ± 0%  +20.15%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/1of10000000-8              282 ± 0%       286 ± 0%   +1.42%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/100of10000000-8            282 ± 0%       286 ± 0%   +1.42%  (p=0.008 n=5+5)
BucketSeries/1SeriesWith10000000Samples/10000000of10000000-8      168k ± 0%      168k ± 0%   +0.02%  (p=0.008 n=5+5)

This should now be ready for review. I've added the latest benchmark results to the description of the PR.
I don't think the benchmark is realistic though, I feel it overestimates the performance of the current implementation, and underestimates the retrieval performance. The first reason for this is because the benchmark uses an in-memory dataset so chunk retrieval is instantaneous. The second one is because it buffers all received series, so their memory cannot be released when they are sent over a gRPC channel. I would expect performance in a realistic scenario to be better than what is predicted.

Have you tried this with "real" data? Is there any noticeable improvement? :thinking:

@GiedriusS In a staging environment things look ~20-30% faster for a 30d range query, so from 14s to 10s. I would like to double check memory usage this week in a prod-like environment to make sure there are no leaks or regressions.

I was testing this today and so far it looks good. I haven't seen any issues with memory usage or leaks.

I noticed that expanding postings and reading the index is also a non-trivial amount of work, so maybe that is also a significant factor.

Let's fix the conflict and I think this pr is good to go?

Conflicts should be fixed now.

Thanks!


xctool segmentation fault while collecting info for testables

xctool (v0.26.0) crashes with Child process terminated with signal 11: Segmentation fault when attempting to run acceptance tests on iOS9, iPhone 6 while "Collecting info for testables..." The full error message is presented below:
Failed to query the list of test cases in the test bundle: objc[38316]: Class SLDatabase is implemented in both "SOME_FILE_PATH" "OTHER_FILE_PATH" One of the two will be used. Which one is undefined.
2015-10-08 15:35:49.183 Belieber[38316:7722324] KIFTester loaded
Child process terminated with signal 11: Segmentation fault

No tests are run and xctool looks like it is able to build and link the test successfully but crashes right after.

Can you try latest release, please?

Can you try master please? I have just merged 26 commits I was working on last 1-2 months. It should resolve the problem you are hitting. Thanks!

Closing since I haven't receiving any response from a bug reporter. Please, reopen if you still see it using latest xctool from master.


Why does node call three ffmpegs

There are three ffmpegs in the task manager

HI @yingqiang006, I'm not seeing the same issue using the test code from the documentation. Each stream that you use will invoke ffmpeg a separate time. I'm not sure that ffmpeg is able to simultaneously handle multiple streams and output them to different destinations all from one invocation.
If this doesn't help, can you paste in some source code to reproduce the error?

Closing for now; let me know if this resurfaces!


What is my username and password

sir i have installed docker as instructed and made an account on heroku with an encryption key. what is the username and password .And how to register an username and password

I think the Documentation is not very clear 😓
But if you want to install it you have 3 ways:

With Git
With Heroku
With Docker

For the Docker and Git solution you must be on your personnal server. If you can't have a dedicated server or VPS use the Heroku solution.
When the server is setup, you can't try to access it form you browser. Then you can register and login.
About register now. You need to generate invitation code by following the Register section
Then you should be able to use the app.


fix(docs): replace nonexistent icon references

What is the purpose of this pull request?

[ ] New Icon
[ ] Bug fix
[ ] New Feature
[x] Documentation update
[ ] Other:

Description

this pr updates the docs to use valid icons in the static installation guide. the guide uses a home icon as demonstration, but such icon doesn't exist. i've replaced all references to home with house
Before Submitting

[x] I've read the Contribution Guidelines.
[x] I've checked if there was an existing PR that solves the same issue.

Thanks, we forgot to upgrade this when renaming home.

Tnx!


[Bug]: Pushed 0 file to remote

Describe the bug
I followed the tutorial successfully. When I  add new notes and use push command in obsidian, it always shows the notification

Pushed 0 file to remote.

But I could commit with Github desktop.
Relevant errors (if available)
No response
Steps to reproduce
obsidian ctrl+P and use push command.


Select component now respects disabled state of the form control

@mseemann does it make sense to preserve Input decorated disable and keep the state in _disabled ? I don't think you can use both Input disabled and FormControl disable at the same time.

i dont think it is a problem to have both ways to disable a form control. The user should know what he is doing.
Can you remove src/e2e-app/app/select/select.component.js and the *.map file from your commit/pr?

Coverage increased (+0.7%) to 95.427% when pulling 138ff39569af370a72412395af9ee16327578c3f on nikoTM:master into 9f7e8406b8373fd9b6dbd209407ba4acce51e5d0 on mseemann:master.

@mseemann didn't know how to amend properly, just pushed as a separate commit.

LGTM!

published as @angular2-mdl-ext/select:0.9.2


Prepare release 3.11.0

The main change is the update to Vert.x 4.5.5 (https://github.com/vert-x3/wiki/wiki/4.5.5-Release-Notes)
Also work around the deprecation of some of the executeBlocking signatures.

@cescoffier just added the milestone, you should force push somehow

The milestone must be set on the PR merged, not this PR.


Smoothen onboarding with Arty A7

This PR addresses two issues when onboarding with the Arty A7:

The ibex-build-firmware.sh script has a bug that makes it fail when a directory is not manually created
There is no documentation on how to load the firmware onto the FPGA

Thanks for the comments @davidchisnall, all addressed.


P/L calculation should take tx fees into account

At the moment our P/L calculation is based on what the user provided at margin. The actual profit is however less tx fees which can be quite confusing.
For example:
In this contract I made 1.09% profit

but on-chain I will only receive: 0.00007577. Meaning, I actually made a loss :)
see https://mempool.space/testnet/tx/7bc402317c241869b17e90d9d34e5a99a33c9b36f0138b2c321d4a96731a2228

The P/L is already based on the actual payout which includes tx fees.


Turns of War Source Code

Inspired by your Doors of Doom, I visited  tic80.com to look for other cool games. Landed on Turns of War - which I really like - checked who the developer was and... Here we are again.
Could you by chance upload the source code for Turns of War?
edit: Reported the malware.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Hi there! I haven't open sourced that game, so sources are not available.
I've reported the spam/malware comment

no problem :) Secret Agents is not really "open source", but has source code in the clear inside the cart. Just stop Tic80 by hitting esc, then "close game" and then F1, you should see the code. All tic80 cartridge ships with the code actually, you can export it etc. In Turns of War i obfuscated it actively

well, at the time there were some people doing that on the tic80 community, reuploading stuff with minimal or no changes and calling it theirs. I don't know if it's still like that.
Anyway, turns of war code is much more complex than secret agents.  Secret agents is about as simple as a non trivial game can be, so taking a look is not as bad. I was much more jelous of Turns of War.
Actually some time ago i started working on a similar turn based game, but this time in a scifi setting. It's gonna be a good game once it's finished in 2045 :) That game will probably be open source (and based on Omicron like this one).


Add support FullColor (24bit) for Windows

I add api for support 24bit color and 8bit color(256 color). Change struct Attribute to class Attribute and add class FullAttibute : Attribute. Add FullColor class (just r-g-b) and static method to convert 24bit color ←→ 8bit color (Linux-like) ←→ 4bit color (Old-windows-like).
Change WindowsDriver implementation for support 24bit color.
But i can't implement checking windows version (old verson don't support 24bit color). I tried to use registry, but .Net Core don't support it. (see SetSupportFullColor() in WindowsConsole)
Change background of Box10x in example.

Thanks for the contribution!   I am currently on vacation, with limited time to review, but I think this looks good.
I will take some code, but I suspect that this might force me to finally revisit the color allocation code, and come up with something better.

I rewrote some part of code. I removed FullAttribute and back to struct Attibute and expanded Attribute (it's strange, but I more time didn't see easy way). Refactored code, restored cursor position after ConsoleWrite. And I tried implement TrueColor support detection. System.Runtime.InteropServices.RuntimeInformation.OSDescription Work fine (unlike System.Environment.OSVersion), but CI server can't build bkz he can't find this property.

This looks great.   I will check after this 0.16 bug fix releease

Is this a PR that we should take? Is this still valid?

@migueldeicaza - please comment on this PR. Should we pursue it or abandon?

Pretty sad, that this was abandoned!

I agree. It would be awesome if someone took it on. The tracking issue is here: https://github.com/migueldeicaza/gui.cs/issues/48

@tig What do you think? How complicated would it be to re-implement this pull request into the current state of development?


Integrate gene_burden into the ETL

We are adding the results of gene burden analyses as a new evidence source for the upcoming release (22.04). We need to make the necessary changes in the ETL for it to be integrated.
1. Schema
The current schema is in a mature state and no changes are expected. This is an example piece of evidence:
{
	"datasourceId": "gene_burden",
	"datatypeId": "genetic_association",
	"targetFromSourceId": "ACAP3",
	"diseaseFromSource": "6mm weak meridian left (5097)",
	"diseaseFromSourceMappedId": "EFO_0004731",
	"pValueMantissa": 9.25,
	"pValueExponent": -12,
	"beta": -0.148,
	"betaConfidenceIntervalLower": -0.191,
	"betaConfidenceIntervalUpper": -0.106,
	"oddsRatio": null,
	"oddsRatioConfidenceIntervalLower": null,
	"oddsRatioConfidenceIntervalUpper": null,
	"resourceScore": 9.250000e-12,
	"ancestry": "EUR",
	"ancestryId": "HANCESTRO_0009",
	"literature": ["34662886"],
	"projectId": "REGENERON",
	"cohortId": "UK Biobank",
	"studyId": "GCST90083260",
	"studySampleSize": 89735,
	"studyCases": 89735,
	"statisticalMethod": "ADD-WGR-FIRTH_M3.0001",
	"statisticalMethodOverview": "Burden test carried out with pLOFs and deleterious missense with a MAF smaller than 0.001%",
	"urls": null
}

1.1 New fields
This source is bringing a few of new fields that need to be exposed in the API, namely:

[ ] ancestry: str: "Genetic origin of a population."
[ ] ancestryId: str: "Identifier of the ancestry in the HANCESTRO ontology"
[ ] statisticalMethod: str: "The statistical method used to calculate the association."
[ ] statisticalMethodOverview: str: "Overview of the statistical method used to calculate the association."
[ ] studyCasesWithQualifyingVariants: str: "Number of cases in a case-control study that carry at least one allele of the qualifying variant."

3. Source config
A PR to the config file is still pending.
4. Evidence location
Evidence strings will follow the same pattern as the other sources found in otar000-evidence_input. They will be in a compressed JSON file here: gs://otar000-evidence_input/geneBurden/json, with the filename following the pattern: gene_burden-YYYY-MM-DD.json.gz
The evidence generation is still WIP, a temporary file with how the evidence shall look like is available at: gs://ot-team/irene/gene_burden/regeneron-2022-03-30.json.gz

PIS is now up to date to get the gene burden data, I'm now trying to find out more about this error in the ETL when processing the input data.
22/04/06 11:36:26 INFO io.opentargets.etl.backend.Evidence$: Validate each evidence: generating a hash to check for duplicates
22/04/06 11:36:26 INFO org.sparkproject.jetty.server.AbstractConnector: Stopped<EMAIL_ADDRESS>(http/1.1)}{<IP_ADDRESS>:0}
Exception in thread "main" org.apache.spark.sql.AnalysisException: Can't extract value from urls#127502: need struct type but got string; line 1 pos 0
	at org.apache.spark.sql.catalyst.expressions.ExtractValue$.apply(complexTypeExtractors.scala:74)
	at org.apache.spark.sql.catalyst.expressions.package$AttributeSeq.$anonfun$resolve$1(package.scala:348)
	at scala.collection.LinearSeqOptimized.foldLeft(LinearSeqOptimized.scala:126)
	at scala.collection.LinearSeqOptimized.foldLeft$(LinearSeqOptimized.scala:122)
	at scala.collection.immutable.List.foldLeft(List.scala:91)

@mbdebian This error indicates that urls is not a struct but a string. This bug is coming from the data, apologies for that. I fixed it later but didn't update the file. The updated gs://otar000-evidence_input/GeneBurden/json/gene_burden-2022-04-05.json.gz is fixed.
However, I just had a discussion with @d0choa and this field will be removed from the evidence. You can expect an update of the data this afternoon.

@mbdebian This error indicates that urls is not a struct but a string. This bug is coming from the data, apologies for that. I fixed it yesterday but didn't update the file. The updated gs://otar000-evidence_input/GeneBurden/json/gene_burden-2022-04-05.json.gz is now correct.
However, I just had a discussion with @d0choa and this field will be removed from the evidence. You can expect an update of the data this afternoon.

That's what I thought @ireneisdoomed , but I was going to double check the data and the ETL in case it was a legitimate change in the data.
Please, let me know when the data update is ready and I'll pull it down with PIS.

I just gave it another round with the fixed version of the gene burden file and the ETL was successful.
This basically means that no data schema is broken, but it doesn't mean the results are ok, we'll have to evaluate them

Everything is up to date now, except for the API new fields.
I'll have a look at that and try to release a new API version.
I'll need to update POS configuration file to create the new images, and then the development deployment context for all this to be seen

@mbdebian We've made changes to the schema. There is one new field that needs to be added to the API: studyCasesWithQualifyingVariants. See specifications in the first comment of the issue.
Data has been regenerated and validated to bring this change and can be found in gs://otar000-evidence_input/GeneBurden/json/gene_burden-2022-04-11.json.gz.

BTW, is there anything to do about?
gs://ot-team/irene/gene_burden/regeneron-2022-03-30.json.gz

I didn't really get that part of the issue, as PIS is now collecting the gene_burden file from its new 'impc' location.


wit-parser: reorder fields for readability

This modifies the field order of WIT structures in the wit-parser crate:

The name field is moved to the first position in the handful of structs it wasn’t already the first field.
The docs field is moved to the last (public, serialized) position, since it is A) often empty/omitted, or B) when present, contains paragraphs of plaintext.

These two changes make the JSON serialized output of Resolve more consistent and readable. For example, see random.wit and random.wit.json in this PR.
Question: does changing the order of fields in a Rust struct break any compatibility guarantee(s) to dependents?

The test failures are interesting. Is something converting backslashes to slashes?

Ah yeah the normalize is intended for error messages with paths to fix across Windows and Unix. I think though it should be ok to skip normalize for JSON tests which I think will help fix the failure here?

Makes sense.


[FancyZones] Alt Windows Snap HotKeys

An alternate Windows Snap HotKey to Swap Windows Between Zones
I love the Windows Snap HotKey, I just that when I execute the HotKey that the Windows in the From and To Zones would Swap instead of just place the Window over top.  I thought this should be a toggle in the settings on if it should just snap or swap, but the more I think about it, perhaps it should be a different HotKey combo like Win+Alt+arrow.
This would be very helpful for Ultra Wide monitors or Multiple monitors where I would like to swap between side zones on the primary zone in front of me.
Any questions, please let me know.

I agree, this would be very helpful on an ultra-wide!

Closing this in favor of https://github.com/microsoft/PowerToys/issues/290 since they describe the same idea (one using the mouse and this using the keyboard). A reference to this issue has been added to https://github.com/microsoft/PowerToys/issues/290


Support for creating Basic (Zonal) Instances

It looks like creation of a basic (zonal) AlloyDB instance is now GA (https://cloud.google.com/alloydb/docs/basic-instance#gcloud)
Can we add Terraform Support for creating this type of AlloyDB instance?

@jdub55 apparently module was written in a way that it was always possible to provide primary instance zone and availability type. You can pass gce_zone and availability_type in variable primary_instance.
Go ahead and try.


ts: Convert web/src/portico/google_analytics.js to TypeScript.

Migrating google_analytics.js, pulled these changes from #25864.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@andersk Ready for a re-review, still one open question here though.

All comments resolved, ready for integration @andersk.

Merged, thanks @Lalit3716 and @andersk!


Update Doc “an-example-subsectionan-example-page”

Automatically generated by Netlify CMS

👷 Deploy Preview for docz-netlify processing.

Name
Link

🔨 Latest commit
12bd6515920c1666a4d126b0496a281ecbacef25

🔍 Latest deploy log
https://app.netlify.com/sites/docz-netlify/deploys/63c18bb335f53a000988ff5b


Could not be cloned

I unfortunately can't upload the PDF because I don't have authorization to do so in my massive bureaucracy.
Web browser: Chrome 58.0.3029.110 (64-bit)
Windows 10
PDF.js version 1.8.188 (although main fails as well)
Background;  I am using the library to extract the contents of form fields (getAnnotations()), and NOT to display the document in the browser.  The gist of the problem is that a call to page.getAnnotation() fails when there is a form field (such as in my case a signature block) that can't be serialized.  It throws an exception deep in util.js and abandons the whole call to page.getAnnotation() as below;
:8888/src/shared/util.js:1301

Uncaught (in promise) DataCloneError: Failed to execute 'postMessage' on 'DedicatedWorkerGlobalScope': function NetworkManager_getXhr() {
		return new XMLHttpRequest();
	  } could not be cloned.

I tried catching the exception in my code by wrapping the call to page.getAnnotations() in a try catch, but it doesn't seem to work.  It does work to comment out that block of code.
If someone could tell me how to just ignore problematic fields/annotations this would be a wonderful solution.
'use strict';

// In production, the bundled pdf.js shall be used instead of SystemJS.
Promise.all([SystemJS.import('pdfjs/display/api'),
			 SystemJS.import('pdfjs/display/global')])
	   .then(function (modules) {
  var api = modules[0], global = modules[1];
  // In production, change this to point to the built `pdf.worker.js` file.
  global.PDFJS.verbosity=global.PDFJS.VERBOSITY_LEVELS.infos;
  global.PDFJS.workerSrc = '../../src/worker_loader.js';

  // Fetch the PDF document from the URL using promises.
  api.getDocument('myDocument.pdf').then(function (pdf) {
	// Fetch the page.
	var numPages = pdf.numPages;
	var myResult="";
	function myCallback(pageNumber, text) {
		//alert("processing page "+pageNumber+", text="+text);
		document.getElementById("myFormDiv").innerHTML+=text;
	}
	for (var pageNum = 1; pageNum<=numPages; pageNum++) {
		function doit(currentPageNumber) {
			//alert("processing page "+currentPageNumber);
			var response="
Page "+currentPageNumber+"
\n";
			pdf.getPage(currentPageNumber).then(function (page) {

				function escapeHtml(unsafe) {
					if (typeof unsafe !== 'string') { return ""; }
					return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
				}

				//attempt to read the data!!!!
				page.getAnnotations().then(function(items) {
					console.log(items); //Dump this into the console to see what properties are available for each field
					items.forEach(function(item) {
						response+="
"+escapeHtml(item.alternativeText)+":"+escapeHtml(item.fieldValue)+"
\n";
					});
					myCallback(currentPageNumber, response);
				}); //end getAnnotations()

			}); //end getPage()

			return response;
		} //end doit()
		doit(pageNum);
	}//end iterating pages
  }); //end getDocument()
});

Problem solved with the following added line... I just had to state my intention.
			var parameters = { intent: 'display' };
			page.getAnnotations(parameters).then(function(items) {


Identify the incoming message source from bot object

I have multiple bots(from different social channels like Facebook and Slack) listening on a common express server. In one of the functions, I am passing the bot object which is something like:

Create a bot:
var Slack = require('./slack_bot.js');  var bot = Slack.bot;
(Note: bot can also be require('./facebook_bot.js').bot)

Call a function and pass the bot object:
someFunc(bot)

At runtime, the above function someFunc may get a bot object from any source, could be Fb or Slack. Is there a property of the bot object I can use to identify the source?

Hey @aarora91
I don't think there is a property in the bot object that is universal across the facebook bot object, slack bot object, and twilio bot object that will all tell you what service it is talking to....in slack.api there is a property that contains a URL to slack, but I think the best bet would to set this property yourself in the object you create.
var Slack = require('./slack_bot.js'); var bot = Slack.bot; bot.socialService = 'slack'

Thanks @dmccrevan this worked beautifully!

Issue seems resolved! If you have any follow ups feel free to reopen!


RPC server responds with plain/text content-type instead of application/json on error

When requesting the applicationlog of a transaction that has not yet persisted it is expected to get an error response. Neo-go gives an error, but instead of the content-type being set to application/json it is set to text/plain; charset=utf-8. The C# implementation does return application/json as content-type.
In my specific case I use a RPC library which will auto convert the JSON response to a native dictionary type, but throws an exception because the content-type is wrong. Undoubtedly there's other libraries that will do the same, hence it might be worth fixing?

The response is JSON, therefore application/json is applicable.

I understand it can be parsed as json. But as said, if the library you're using does content-type checking then it fails.

We set application/json after error response processing, it's definitely a bug:
https://github.com/nspcc-dev/neo-go/blob/3bbb21bf8f388dc291fd8c02a996231b6be9fa20/pkg/services/rpcsrv/server.go#L2864-L2870

CORS is affected as well, btw.


Beekeeper: Improve documentation

Improve documentation.

https://github.com/ethersphere/beekeeper/pull/146


Update Api Endpoints

In server.go

Added functions to create new TraceData and TraceSummary structs
Updated handler functions to marshal and send TraceData and TraceSummaries
Added a function to calculate the duration of a trace.

In trace_store.go:

Added getter functions GetSpansByTraceID and GetRecentTraces
Cleaned up error output a bit

In types.go:

Factored out some error types
Added a TraceSummaries struct to wrap the TraceSummary slice for json marshalling
Moved DurationMS from TraceData to TraceSummary

I would break this up into a couple of different PRs:

Add the error types and move the duration from TraceData to TraceSummary
Refactor the trace store methods + tests
Consider making the TraceStore store and return TraceData instead of []SpanData

func (store *TraceStore) GetTrace(traceID string) (TraceData, error)
func (store *TraceStore) GetRecentTraces(traceCount int) []TraceData

type TraceStore struct {
  maxQueueSize int
  mut          sync.Mutex
  traceQueue   *list.List
  traceMap     map[string]TraceData
}

- Update getTracesHandler
- Update getTraceIDHandler


Limit of highlighted errors

Hello,
I have more than 600 errors in a legacy source code.
I can see all the errors in the "Problem" window in VS Code, but in the "source code" window I have no more highlighted errors after the line 1015.

I think there is a limit with the highlight.
Can you confirm ? Is it a bug ?

Is your script open source, so I could test?
Also, does this problem happens when you use the ShellCheck CLI?

Sorry, it is not an open source script...
but you can easily reproduce the issue by copying the same line 300 times with an error

You can see that there is a limit with the highlighted errors.

It turns out to be a VS Code limitation: https://github.com/microsoft/vscode/issues/9826

I'm going to close this issue in this repository, as it's not the right place.
However, if you think on a solution that would involve changes in the extension rather than in the core VS Code, feel free to suggest and I can reopen this issue.


remove broken require statement

fixes:
Installing Cookbook Gems:
Compiling Cookbooks...

================================================================================
Recipe Compile Error in /var/chef/cache/cookbooks/deploy_resource/libraries/provider_revision.rb
================================================================================

LoadError
---------
cannot load such file -- chef/provider/deploy

Cookbook Trace:
---------------
  /var/chef/cache/cookbooks/deploy_resource/libraries/provider_revision.rb:23:in `<top (required)>'

Relevant File Content:
----------------------
/var/chef/cache/cookbooks/deploy_resource/libraries/provider_revision.rb:

 16:  # distributed under the License is distributed on an "AS IS" BASIS,
 17:  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 18:  # See the License for the specific language governing permissions and
 19:  # limitations under the License.
 20:  #
 21:
 22:  require "chef/provider"
 23>> require "chef/provider/deploy"
 24:  require "chef/json_compat"
 25:
 26:  class Chef
 27:    class Provider
 28:      class Deploy
 29:        class Revision < Chef::Provider::Deploy
 30:          provides :deploy_revision
 31:          provides :deploy_branch
 32:

System Info:
------------
chef_version=14.0.190
platform=debian
platform_version=8.10
ruby=ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
program_name=/usr/bin/chef-client
executable=/opt/chef/bin/chef-client

Running handlers:
[2018-04-06T10:22:04+00:00] ERROR: Running exception handlers
Running handlers complete
[2018-04-06T10:22:04+00:00] ERROR: Exception handlers complete
Chef Client failed. 0 resources updated in 05 seconds
[2018-04-06T10:22:04+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out
[2018-04-06T10:22:04+00:00] FATAL: Please provide the contents of the stacktrace.out file if you file a bug report
[2018-04-06T10:22:04+00:00] FATAL: LoadError: cannot load such file -- chef/provider/deploy

Please enable issues for this repo, too. Thanks

We can probably get those old tests copied over. They might need some tweaks to work in a cookbook, but that can probably get done.

and please enable Github issues…

@tas50 Ping? Can you please enable github issues?

Done


Adding stacktrace to errors received from azure.ParseResourceID

The bigger context of this task is to come up with approach to improve error logging in our code. The goal is to be able to quickly identify the "root" cause of the error from the error logs. Adding stacktrace is one way to achieve this.
Another approach to make errors easily identifiable is to provide more context in form of text. We already do this in many instances, e.g: https://github.com/Azure/ARO-RP/blob/master/pkg/util/pem/pem.go#L36
These errors in most cases will not benefit from adding stacktrace since they are already unique.
This PR serves as small example handling specifically errors that are returned from azure.ParseResourceID function. This function is called in tens of places and the errors are bubbled up and got printed in a single place, making it impossible to tell what when wrong and where. The error log (before these changes) looks like: pkg/backend/openshiftcluster.go:198 backend.(*openShiftClusterBackend).updateAsyncOperation.func1() parsing failed for . Invalid resource Id format  client_request_id=.... In this case the ResourceID is empty string, so we don't even know which component caused this error, it could be empty vnetID or clusterID or any other resource ID. If we add stack trace to these errors as soon as we get them from vendored code then we will know immediately the root cause when the error occurs.
kubernetes repository uses this approach a lot (especially kubeadm) https://github.com/kubernetes/kubernetes/blob/4f29960cb2058c4f556bf1e5ba49c9a29a501e70/cmd/kubeadm/app/phases/kubelet/dynamic.go#L43
Wrap in addition to adding the string to the received error also establishes a stacktrace.
In case of ParseResourceID errors (and in quite a few other places in the code) I feel like adding another string to the error is adding more noise to the code and is not necessary, the stacktrace on its own seems appropriate.
Few open thoughts around standardisation. Should we convert all the errors to stack trace approach.

Should we convert all the fmt.Errorf statements? We can convert them to errors.Errorf which does establish stacktrace for the error. While most of fmt.Errorf statements do provide unique strings for the errors, they are not always 100%, eg.  id %q is not lower case, unexpected status code
When there is more than one function call between logging error and its origin, then we don't need to add WithStack (or Wrap) when we pass the error up the stack. I think the rule of thumb should be to only Wrap/WithStack at the point where we get error from vendored code only. This will be a little more complicated to handle.

https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully

@olga-mir thanks for the PR and the investigation.  For now, I think this is a dead end, so closing.  We can revisit in the future as appropriate.


Delivery service UI allows multiple regexes with the same order

The edit delivery service UI allows multiple regexes with the same value in the order field.  This causes unintended consequences downstream in Traffic Monitor, for example, when two HOST regexes are specified with order = 0.  Modify Traffic Ops such that this UI allows only one regex per order value.

The following query can be used to identify any delivery services configured with more than one regex with a given set number value:
select d.xml_id, r.set_number, count(*) from deliveryservice d, deliveryservice_regex r where d.id = r.deliveryservice group by d.xml_id, r.set_number having count(*) > 1;

Seems like it'd be ideal if the GUI didn't allow duplicate orders either, i.e. selected order numbers were removed via JS from other dropdowns. Or better yet, order was determined by dragging and dropping. But, not worth doing in 1.x.


Add font-family: inherit to pull in Montserrat

I noticed buttons weren't pulling in Montserrat. Adding font-family: inherit seemed to fix it.

Codecov Report

Merging #165 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master   #165   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          31     31
  Lines         296    296
=====================================
  Hits          296    296

Impacted Files
Coverage Δ

src/Button.js
100% <ø> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


webpack.config.js [ext] extra dots

According https://webpack.js.org/configuration/output/#template-strings, webpack template string [ext] includes a leading dot.
Is it a bug that webpack.config.js includes extra dots in the following lines?
https://github.com/apache/superset/blob/e58a3aba545fd03f2af33b0075c4cacf09f776a3/superset-frontend/webpack.config.js#L403
https://github.com/apache/superset/blob/e58a3aba545fd03f2af33b0075c4cacf09f776a3/superset-frontend/webpack.config.js#L431
I expect the correction should be
filename: '[name].[contenthash:8][ext]',

Wow, I believe you're right! This all seems to have been handled gracefully so nobody ever saw a problem, but I do believe you're right, and I see some double-dotted files in my filesystem from it.


unittests/AST: Fix link library ordering for Linux

This is unforutante, but swiftAST needs to be after swiftParse, otherwise
SwiftASTTests will fail to link, saying that libParse can't find a symbol in
libAST, specifically:
(swift::DeclNameLoc::DeclNameLoc(swift::ASTContext&, swift::SourceLoc, swift::SourceLoc, llvm::ArrayRefswift::SourceLoc, swift::SourceLoc))

I'm not sure what the right way to fix this, the ordering of libraries is totally a hack, but it gets the test target building on my centOS host. @jrose-apple what was circular in https://github.com/swift/swift/commit/fadf6b3c9ff42dae189b3a7a39028c9653a90603#diff-b2e9477436b7dbbafb61c5c290c8aaa0R8? Maybe fixing that will make this unnecessary


? control priority of directives from html

These priorities are only relevant at binding time, right? When is it needed to define it by the developer?

al-repeat has the biggest priority, it goes first, what if you need al-init/al-ctrl goes first?

Priority is per element, right?
First init then Ctrl then repeat.
init to define variables, Ctrl to create scope, repeat to use scope.
This should be by default.

Priority is per element, right?

yes

First init then Ctrl then repeat. This should be by default.

Then "X=5" wouldn't be in rootCtrl (it would be rootCtrl.$parent.X), so al-repeat wouldn't reach X.
Next example: what if you have a list of users and you need to use userCtrl for everyone:

You couldn't do this if al-ctrl was first.

Just an idea: reading and using the order of the attributes in an element? This makes more sense for me than adding modifiers.

the order of the attributes in an element

It was first what I tried, browsers don't keep the order, and different browsers can give you different result.

How AL or AL2 solve this?

How AL or AL2 solve this?

Angular.js 1 works the same, every directive has a priority.
I don't know what approach is used in A2, but A2 can use the order of attributes, because, A2 uses own html-parser (which understands non standard attributes).