Fancy (e.g., animated) graphics

ERDDAP's graphing capabilities are simple, plain, and functional (so say I) or stodgy (so say lots of others).
ERDDAP current graphing capabilities were designed so that

The load on the server was minimal
Each graph can be requested with one simple RESTful URL.
The system could be made with the technology and a library available in 2007 (very limited).

ERDDAP's current graphics system isn't going away both for continuity and because this approach meets certain basic needs,
but there is clearly room for adding a series of web pages with specialized, fancy (e.g., animated) graphics,
A good example is the animated vectors that Adam Leadbetter is (and Rob Fuller was before he retired -- we miss you Rob!) working on: https://irishmarineinstitute.github.io/erddap-js/demo/02-leaflet-time-dimension-velocity/
The discussion about that particular animation is at https://groups.google.com/g/erddap/c/WWw042tLPTs
I think Adam is still working to make this easier to reuse.
Your goal here would be make web pages for common types of animations.  I don't know what's possible. You'll have to look around, figure out what is possible, and then make it work.
We'll also have to find a way to point to these new web pages from ERDDAP.
The system you make can be tightly or loosely connected to ERDDAP. Do what is best / makes sense.
It is import that the animations be able to get data from ERDDAP's services directly.
It is important that you keep the load on ERDDAP minimal. We don't want a system where one user can bog down ERDDAP (cough, like WMS, cough).
Skills required: Java and JavaScript programming. The ability to work independently.
Difficulty: Probably mostly very challenging.
Mentor: Bob Simons (main author of ERDDAP), but this is beyond my expertise. I'm only good with simple JavaScript. I haven't worked with any of the animation libraries.  I can help with hooking things into ERDDAP and I (and others, e.g., the ERDDAP Google Group) can comment on the graphics while they are works in progress, but that's about it. You'll have to work pretty independently.
Bonus: lots of ERDDAP users will be very, very grateful to you for adding more interesting graphics to ERDDAP.

Rich Signell has in the past suggested TerriaJS as a tool to make interesting/animated graphics. See
https://terria.io/


replace table showing metadata

Right now the table showing sheet level OIM metadata is a bit unreadable, so it would be good to have something that was more user-friendly. We chatted about an accordion list. The main items that should be visible before the accordion is opened are:

label
title
datePub

If there could also be a button to any URLs pointing to digital images (webUrl)
The open accordion could be everything else.

@thehellomartian has completed the accordion and pushed to develop.


Remove some SecurityManager leftovers

Summary of the changes / Why this improves CrateDB
It's deprecated for removal:
https://openjdk.org/jeps/411
Checklist

[x] Added an entry in CHANGES.txt for user facing changes
[x] Updated documentation & sql_features table for user facing changes
[x] Touched code is covered by tests
[x] CLA is signed
[x] This does not contain breaking changes, or if it does:

It is released within a major release
It is recorded in CHANGES.txt
It was marked as deprecated in an earlier release if possible
You've thought about the consequences and other components are adapted
(E.g. AdminUI)

retest this please
Flaky testTransientErrorsDuringRecoveryAreRetried is unrelated


hasSearchResult breaks default F4 search.action.focusNextSearchResult

VSCode Version:

1.43.0-insider
4c9161a3f125f5a788aafa73a4ecfcb27dcfc319
x64

OS Version:

SB Version:    1.4
Distributor ID: Antergos
Description:    Antergos Linux
Release:        rolling
Codename:       n/a

Linux 5.5.4-arch1-1 x86_64

Steps to Reproduce:

Open editor
Global (ctrl+shift+f) search for something that results in matches
Press "F4"
Nothing happens

Steps to Fix:

Open editor
Override F4 shortcut with JSON shown below
Global search for something that results in matches
Press "F4"
Correctly navigate through search results

{
    "key": "F4",
    "command": "search.action.focusNextSearchResult",
    "when": ""
  }

Does this issue occur when all extensions are disabled?: Yes

/duplicate #91299


Identical names for the chart and the directory with values. Problem with chart installation.

The main essence of the problem: if we name the directory the same as the chart that we fetch remotely, then helmwave throws an error because it cannot find the chart locally. I assume that the check for the local chart happens first, causing helmwave to error out and not search for the chart remotely.
** General info (please complete the following information):**

OS: K8s cluster on Ubuntu 20.04
Helmwave Version 0.32.1

To Reproduce
Steps to reproduce the behavior:
directory structure, when the problem manifests:
total 40
drwxrwxr-x  5 oem oem 4096 Oct 18 09:01 ./
drwxr-xr-x 17 oem oem 4096 Oct 18 09:00 ../
drwxrwxr-x  2 oem oem 4096 Oct 17 18:05 .cicd_templates/
drwxrwxr-x  8 oem oem 4096 Oct 18 08:49 .git/
-rw-rw-r--  1 oem oem   17 Oct 17 12:34 .gitignore
-rw-rw-r--  1 oem oem  864 Oct 18 08:35 .gitlab-ci.yml
-rw-rw-r--  1 oem oem 1471 Oct 18 08:30 helmwave.yml
drwxrwxr-x  2 oem oem 4096 Oct 17 17:50 ingress-nginx/
-rw-rw-r--  1 oem oem   31 Oct 17 17:50 README.md
-rw-rw-r--  1 oem oem  793 Oct 17 17:48 .yamllint

helmwave.yml:
project: DeployViaHelmwave
version: "0.32.1"

.options: &options
  create_namespace: true
  atomic: true
  wait: true
  timeout: 5m
  max_history: 3
  show_notes: false

repositories:
  - name: ingress-nginx
    url: https://kubernetes.github.io/ingress-nginx

releases:
  - name: ingress-nginx
    <<: *options
    namespace: ingress-nginx
    chart:
      name: ingress-nginx/ingress-nginx
      version: 4.8.2
    values:
      - ./ingress-nginx/values.yaml

run:
helmwave build
got error:

To solve the problem, you need to rename the 'ingress-nginx' directory to a name different from the chart name.

Thank you, the update 0.32.3 fixed the problem.


Duplicate function definitions do not throw errors with traits

When implementing a trait for a struct that has duplicate function definitions, no error is thrown.
NOTE: Preventing this may conflict with multiple From trait implementations.
Minimal repro using two identical traits:
pub struct MyStruct {}

pub trait MyTrait {
    #[storage(read, write)]
    fn write(self, val: u64);
    #[storage(read, write)]
    fn read(self);
}

pub trait MyTrait2 {
    #[storage(read, write)]
    fn write(self, val: u64);
    #[storage(read, write)]
    fn read(self);
}

// No error
impl MyTrait for MyStruct {
    #[storage(read, write)]
    fn write(self, val: u64) {

    }

    #[storage(read, write)]
    fn read(self) {

    }
}

// No error but these function definitions have already been implemented
impl MyTrait2 for MyStruct {
    #[storage(read, write)]
    fn write(self, val: u64) {

    }

    #[storage(read, write)]
    fn read(self) {

    }
}

In the following example, we see this sort of implementation in the StorageBytes type in the standard library. We have two implementations of MyStruct. The first uses a trait and the second does not. When using the trait, no error is thrown. When implementing without a trait an error is thrown as expected.
A consequence of this is a user writing a special storage type, adding read and write functions, and not being informed that the implementations will be overwritten by the StorageKey type.
use std::storage::storage_api::*;

pub struct MyStruct {}

pub trait MyTrait {
    #[storage(read, write)]
    fn write(self, val: u64);
    #[storage(read, write)]
    fn read(self);
}

// Does not throw a duplicate definition error
impl MyTrait for StorageKey<MyStruct> {
    #[storage(read, write)]
    fn write(self, val: u64) {
        write(self.slot, 0, val);
    }

    #[storage(read, write)]
    fn read(self) {
        let val = read::<u64>(self.slot, 0).unwrap_or(0);
    }
}

// Throws duplicate definition error as expected
impl StorageKey<MyStruct> {
    #[storage(read, write)]
    fn write(self, val: u64) {
        write(self.slot, 0, val);
    }

    #[storage(read, write)]
    fn read(self) {
        let val = read::<u64>(self.slot, 0).unwrap_or(0);
    }
}

Tested with forc v0.38.0

A consequence of this is a user writing a special storage type, adding read and write functions, and not being informed that the implementations will be overwritten by the StorageKey type.

There should be no implementation override in this case and Rust has the same semantics in this case.
Let's consider the StorageKey example from the original post. Then s.read() should resolve to the struct impl method call even in the presence of a trait with the same method and if the user wants to call the read method of the MyTrait trait then they would have to specify explicitly ::read(s):
    let s: StorageKey<MyStruct> = StorageKey {
             slot: 0x0000000000000000000000000000000000000000000000000000000000000000,
             offset: 0,
             field_id: 0x0000000000000000000000000000000000000000000000000000000000000000,
         };
    s.read();  // calls std::storage::storage_key::StorageKey::read
    <StorageKey as MyTrait>::read(s);

Does everyone agree we should close this issue?

Closing as this is expected behavior


WR 1365 table styling and icons

Theming for the Guide to Labour Market information table.
Also requires content updates.

Thanks, lgtm. I suggest you branch off develop to make the changes more evident, and to simplify the merge back once the PR is approved.
Also, please update the ticket with deployment instructions explaining how the content should be edited.

Yes, I started this branch before we had the develop branch.  I should have did the pull request against the develop branch instead of master.
I will add deployment instructions once these changes in the DEV site so I have something to reference.


Remove obsolete info about PowerShell version in Docker images

@rbhanda - Can you make sure this gets applied to the changes for the 7.0.4 release?


Add a test for the main user permissions

Issue: https://github.com/db-operator/db-operator/issues/36

@db-operator/admins  It's ready for a review


When there is no camera available in the system, an exception occurs.

An exception is raised when I use "std::vector devices = camera.getCameras();" to retrieve the list of devices.
The error stems from the checkCreateClassEnumeratorResult function failing to handle the HRESULT hr correctly.
When hr == S_FALSE, SUCCEEDED(hr) returns true, which is not the expected behavior.
bool checkCreateClassEnumeratorResult(HRESULT hr, std::string* errorString, std::string errorDescription)
{
    bool result = true;
    if ( hr!= S_OK )
    {
        result = false;

        // Pass error string
        if (errorString != NULL)
        {
            *errorString = errorDescription + ": ";
            if (hr == E_OUTOFMEMORY)
            {
                *errorString += "There is not enough memory available to create a class enumerator.";
            }
            else if (hr == S_FALSE)   // Cannot be reached when hr == S_FALSE.
            {
                *errorString += "There is no any camera.";
            }
            else if (hr == E_POINTER)
            {
                *errorString += "NULL pointer argument.";
            }
            else
            {
                *errorString += "hr = (" + std::to_string(hr) + ")";
            }
        }
    }

    return result;
}

Thanks. I am restructuring the whole project. Will handle this situation on the new version as well.

Thanks.  Has been fixed on 020f02be288eac2732d928a88e1cfcb24f0cad76.

Thanks. has been fixed on 020f02be288eac2732d928a88e1cfcb24f0cad76


'Remember my email' is not working.

In the login page,

Check 'Remember my email' box.
Input a correct email address.
Input a wrong password and enter.

Even though I checked 'Remember my email' box, e-mail is deleted after submitted a wrong password.

@JUHYUNCHOI
moved to https://github.com/webida/webida-dashboard/issues/55


References to deprecated USAGE privilege type should be updated to reflect new USE syntax

Today the new Unity Catalog privilege model 1.0 went live and USAGE has been replaced by USE CATALOG and USE SCHEMA. Should consider how to update other pages that reference the old USAGE privilege type.
For example this sentence on this page:
"Users can see all catalogs on which they have been assigned the USAGE data permission."

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

ID: d38dc6c7-6ede-1a19-3429-e272d125100b
Version Independent ID: d38dc6c7-6ede-1a19-3429-e272d125100b
Content: What is Unity Catalog? - Azure Databricks
Content Source: databricks/data-governance/unity-catalog/index.md
Service: azure-databricks
GitHub Login: @mssaperla
Microsoft Alias: saperla

@JimThorstad
Thanks for your feedback! We will investigate and update as appropriate.

@JimThorstad
Thanks for your feedback! We have assigned the issue to author and will provide further updates.
@mssaperla
could you please review this and update as appropriate.

Thanks for your dedication to our documentation. Unfortunately, we have been unable to review your issue and apologize for the delayed response. The requested updates have not yet been made. The timeline for resolution varies based on resourcing. We've created an internal work item (DOC-7189) to incorporate your suggestions. We are closing this issue for now, but feel free to comment here as necessary.
#please-close


Command failure warnings should include the command itself

As I see both kubectl runners log the command:
https://github.com/Shopify/kubernetes-deploy/blob/master/lib/kubernetes-deploy/kubernetes_resource.rb#L120
https://github.com/Shopify/kubernetes-deploy/blob/master/lib/kubernetes-deploy/kubernetes_resource.rb#L120
Maybe I misunderstood and there's more you want to log?

You're right, I think this has been fixed already with https://github.com/Shopify/kubernetes-deploy/commit/8db202f529c531cadc6384aff0ebff3032c108e0 and  https://github.com/Shopify/kubernetes-deploy/commit/c5a4a585c992dd300f8c75371ec007f1c9ed7071. 😄


suggestion: add password hashing

Is your feature request related to a problem? Please describe.
Thoughts on supporting something such as Bun.password - https://bun.sh/docs/api/hashing ?
Describe the solution you'd like
Perhaps std/crypto would be a good place to support something similar? Wrapping the native Rust implementation(s) via WASM.
Describe alternatives you've considered
Currently to use something like argon2 or bcrypt with Deno, you must find and trust a third-party developers wrapper, or attempt bindings yourself. Providing this as part of std/crypto, a trusted dependancy, could help to improve security for those needing password hashing, and improve ease of implementation.
Thanks!

My immediate impression is that a new API isn't needed. Rather, we could add documentation to @std/crypto, if anything.

Thanks for the comment @iuioiua, although I have to admit I don’t quite understand. I can’t see how this could be achieved using the current @std/crypto?

FYI, I have already done some of the prework for supporting password hashing in the crypto module in stdext. This can be moved to std if the team wants to add support for password hashing in the future 💪🏻

With the introduction of Deno 2.1 and direct Wasm imports, does this change anything here?

We already use wasm in std/crypto implementation https://github.com/denoland/std/tree/main/crypto/_wasm
Do you suggest adding bcrypt and argon2 to std/crypto digest API? Or do you suggest API specific to password hashing?

@kt3k bcrypt and argon2 in std/crypto digest API would be great. Perhaps with a supporting example at https://docs.deno.com/examples.
A password specific hashing API would make for a nice developer experience, but perhaps something that could come later, building on top of digest API support.


Can't Make Outlet Show As Air Purifier

What issue do you have? Please be as thorough and explicit as possible.
I am using the "outlet" options section as with the old version and trying to turn my outlets into air purifiers. The log shows the "ShowAs" is still "outlet" even though the options say Air Purifier.
Details of your setup.

Do you use Homebridge (with config-ui?) or HOOBS?

Homebridge

Which version of Homebridge/HOOBS do you have?

1.3.4

Which version of this plugin (homebridge-wemo) do you have? Has the issue started since upgrading from a previous version?

3.4.1. I just moved over from the old plugin, which worked fine.

Which Wemo devices do you have that are causing issues? Please include product models if applicable.

Wemo outlet, v1 and v2
Please paste any relevant logs below.

Hi,
Can you post your config?
There are no code changes between the latest version of homebridge-platform-wemo and homebridge-wemo except the name changes.

{
    "name": "Wemo",
    "mode": "auto",
    "wemoOutlets": [
        {
            "label": "Master Bedroom Air Purifier",
            "serialNumber": "221327K010113D",
            "showAs": "purifier",
            "manualIP": "<IP_ADDRESS>"
        }
    ],
    "platform": "Wemo"
}
Dan Rodriguez m.<PHONE_NUMBER>
On Jul 26, 2021, 6:14 PM -0400, Ben @.***>, wrote:

Hi,
Can you post your config?
There are no code changes between the latest version of homebridge-platform-wemo and homebridge-wemo except the name changes.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Can you update to the beta version I have just pushed, 3.4.2-beta.0, to see if this fixes this?
Thanks

Yes it fixed it
Dan Rodriguez m.<PHONE_NUMBER>
On Jul 26, 2021, 6:51 PM -0400, Ben @.***>, wrote:

Can you update to the beta version I have just pushed, 3.4.2-beta.0, to see if this fixes this?
Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.


feat: add go to definition for imports

Adds the go to definition capability for navigating to import files. This functionality already exists via document link, but I think it's more/also appropriate as a definition.
I can also imagine going to definition for flag aliases as well as targets in the future.

Oh, and I do actually need you to Salesforce CLA before I can merge this

that's weird, it says i signed it already (i did try before when i put up the pr but there was some error in didn't get back to)

🤔 maybe the check only re-triggers when something in the Pull Request gets changed. Let's see if this gets auto-resolved after updating the code

ope looks like that was it, i'll check vscode when i get a chance to set it up. i have neovim setup with document link support with lsplinks and both still work fine tho

I verified that this also works for VS-Code


Add 'Get help' info

Add support information to footer in the teacher interface

Looks good to me @David-Feetenby 👍

Is that the correct alignment of the content? Shouldn't it be the same width as the stuff underneath?

Is that the correct alignment of the content? Shouldn't it be the same width as the stuff underneath?

They should be aligned now


Adding Sessionize for verification

A verification of connection between sessionize account and RD profile.

Docs Build status updates of commit b7cd179:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

rd/magnus-martensson.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Cannot select text in the log window while messages are displayed

Problem:
If you want to copy text in the log window, that is not possible while new messages are displayed. Selected text becomes unselected when a new message is displayed. This happens also when "Toggle Autoscroll" is enabled (scrolling turned off).
Solution:
The selection is clear likely because the text in the log is updated. This happens also when scrolling is turned off. One solution could be to buffer log messages while scrolling is disabled, and append the buffered messages when scrolling is turned on. But then the user would not see the new messages.
Perhaps rename the button to "Pause logging" or "Toggle Logging"?
A temporary workaround is to run another app that does not display log messages. That would stop new message from being displayed (given that the other app does not display lots of messages!).

Can the event "user starts text selection" be detected? If so, scrolling and appending can be temporarily disabled while selection is in progress.


addInlineJs Cache not working

In an Twig Tempalate I have this code:
 {% set script %}
alert('Test');
 {% endset %}
 {% do assets.addInlineJs(script,{ 'group':'bottom','priority':100 }) %}
{{ assets.js('bottom') }}
This code is successfully displayed in the html code the first time it is called:

But after a reload, the code section is no longer available. It looks like the inline cache is not working well.
  It makes a difference.

modular.html.twig file:
{% extends 'partials/base.html.twig' %}
{% block body %}
    {% for module in page.collection() %}
        {{ module.content }}
    {% endfor %}
{% endblock %}
modular template file:
{% set script %}
    alert('Test');
{% endset %}
{% do assets.addInlineJs(script,{ 'group':'bottom','priority':100 }) %}
Javascript works within the modular.html.twig file, but not in the modular template file.

This is expected behavior.  This is because modular subpages are processed along with their twig and then the resulting rendered html is stored as the content and cached.  Once this the twig is not processed again so anything that is not output to html of that page is lost.
However the solution is quite simple.   Simply set never_cache_twig: true in the modular subpages frontmatter.

Ok, thanks for your help. It works... Of course, it would be better to leave the cache switched on. :)

Don't cache does not feel right. This affects many use case.
From form fields to modular templates making use of assets/inlinejs/... or even plugins listening to form events to add assets (because these are only fired once during initial processing and corresponding assets are lost in subsequent reloads).
Is there another issue where this is tracked?

ping / reopen-request

There is really no way caching parts of the page output right now.
My take on this is that I have plans to fix this issue, though it will require quite major architectural changes, so it will not be fixed until I have rewritten pages logic and made some additional fixes into elsewhere as well. I have some basis for this already implemented, though.
The more detailed response is that I need to rewrite pages to the new Flex objects as well as improve HtmlBlocks to allow dynamic content inside of cached content. Flex objects are much better defined than the current pages, meaning that they are self-contained (for example they know how to render themselves). They also allow us to differentiate different page types by allowing custom logic; for example, modular pages could have custom behaviour to regular pages. They also use HtmlBlocks which are basically advanced blocks which can contain not only HTML but also CSS/JS/images, custom metadata and other HtmlBlocks. It will automatically fix the missing CSS/JS issue, but later it could allow much more advanced caching as well.

I marked this for 1.7 even if it's likely that this will not be fully supported in that version. But the goal is to rewrite this part of the logic by 2.0.

The underlying issue is that doctrine cache is only enabled for individuals pages but is not for a (modular) page as a whole.
That means cached version of every individual components is restored but any modification affecting the page as a whole done during initial rendering (= any deferred operation, like enqueing assets, deferred blocks, ...) is not recorded.
A very quick fix would be to enable cache for whole modular pages too.

Enabling cache for whole modular pages would not resolve the issue.
The issue is that when you call page->content() on any page (be it modular or not) the first time, the content itself is cached.  Modular pages have the extra 'feature' of rendering content with an associated Twig template, the HTML output, as a result, is then cached.  However, if your modular Twig has some asset calls those will work the first time (while Twig is rendering), but then after the resultant content is cached, the Twig is no longer processed (as the HTML output is cached).
This is why we recommend never_cache_twig: true to be set when you need Twig to be rendered each time for modular pages.

It would be wonderful to add assets on a per modular basis. Hell you could even label that "component based" :P

As 1.7 is out can we remark this for 2.0, as it would be nice to see this in an upcoming release?


question about your Evaluate code: where is Visual Concept Sliders Evaluate code for Evaluating?

Congrats for this great work.
where is Visual Concept Sliders Evaluate code for Evaluating?
Thanks!

If you mean, code for generating images - it is same as text sliders. It is in /evalscripts folder

If you mean, code for generating images - it is same as text sliders. It is in /evalscripts folder

Sorry, I didn't explain it clearly before. What I meant was how to test on my own image data set after training imagesliders.

Yes, all the evaluation codes and notebooks provided are generic. They can help you with both text sliders and image sliders.
For image editing - you can refer to this notebook https://github.com/rohitgandikota/sliders/blob/main/demo_image_editing.ipynb

Yes, all the evaluation codes and notebooks provided are generic. They can help you with both text sliders and image sliders.
For image editing - you can refer to this notebook https://github.com/rohitgandikota/sliders/blob/main/demo_image_editing.ipynb

Thank you for your timely reply. I will take a closer look when I get back. Best wishes.


Linux Dash (Demo)

Linux Dash runs in Demo mode
how to run it in real mode?

npm start

<EMAIL_ADDRESS>start /var/www/linux-dash
gulp

[11:18:58] Using gulpfile /var/www/linux-dash/gulpfile.js
[11:18:58] Starting 'template-cache'...
[11:18:58] Starting 'generate-css-dist'...
[11:18:58] Starting 'watch'...
[11:18:59] Finished 'watch' after 296 ms
[11:19:00] Finished 'template-cache' after 1.25 s
[11:19:00] Starting 'generate-js-dist'...
[11:19:00] Finished 'generate-css-dist' after 1.41 s
[11:19:01] Finished 'generate-js-dist' after 1.04 s
[11:19:01] Starting 'build'...
[11:19:01] Finished 'build' after 53 μs
[11:19:01] Starting 'default'...
[11:19:01] Finished 'default' after 91 μs
and nothing is hapening

same issue here, any workaround?

I cannot install it correctly!

it's inside the /app directory (you will find an index.html file there)
but it'll not gonna work anyway, see this: https://github.com/afaqurk/linux-dash/issues/430

@nguyenvulong your version worked very well in python. Can you add WHOIS menu near next each IP? I wish to know what connection from which country my server is connected to. An IP lookup service. It would be really nice addition.

for WHOIS api, you may want to try this https://jsonwhoisapi.com/docs/#whois
I'll implement it some time though

@nguyenvulong you can add href for each IP like this http://whatismyipaddress.com/ip/<IP_ADDRESS> where the user can click it and go to the page.


bump otel to v > 0.44.0 to fix CVE-2023-45142

Provide a description of what has been changed
Checklist

[ ] Changelog has been updated and is aligned with our changelog requirements
[x] Commits are signed with Developer Certificate of Origin (DCO - learn more)

/run-e2e sequential

/skip-e2e


Stan/dapp info

A little css love for dapp-info before showing it in ENG call, plus beginnings of a messaging section.

I was holding back. 😁


Type PermissionName for Permission API doesn't contain correct types

TypeScript Version:  3.6.3

Search Terms:
permission, permissionname, API, navigator, clipboard-write, clipboard-read, clipboard
Code
  const checkForPermission = (type: PermissionName) => {
    navigator.permissions
      .query({
        name: type,
      })
      .then(permissionStatus => {
        // Will be 'granted', 'denied' or 'prompt':
        console.log(permissionStatus);
        // permissionStatus.state = 'granted'
        // Listen for changes to the permission state
        permissionStatus.onchange = () => {
          console.log(permissionStatus.state);
        };
      });
  };

  checkForPermission('clipboard-read');
  checkForPermission('clipboard-write');

Expected behavior:
'clipboard-read' and 'clipboard-write' should be valid types for PermissionName type.
Actual behavior:
'clipboard-read' and 'clipboard-write' are not valid types for PermissionName type.
Typescript is showing error:
Argument of type '"clipboard-read"' is not assignable to parameter of type 'PermissionName'.
Playground Link:
TS Playground link
Related Issues:
Other comments:
According to MDN PermissionName should have these types:
'accelerometer', 'accessibility-events', 'ambient-light-sensor', 'background-sync', 'camera', 'clipboard-read', 'clipboard-write', 'geolocation', 'gyroscope', 'magnetometer', 'microphone', 'midi', 'notifications', 'payment-handler', 'persistent-storage', and 'push'
Source

I've already made changes in my local fork, but not sure what's the exact workflow here? Should I create a PR or does it need to be confirmed first?

@maciekgrzybek thanks for asking! A PR would be great

@RyanCavanaugh just pushed it here :) #34562

PR added here  - https://github.com/microsoft/TSJS-lib-generator/pull/792

Looks like API for Clipboard was changed since previous PR. Now we have this - https://developers.google.com/web/updates/2018/03/clipboardapi

pls fix this bug!

How about this bug ?

As a workaround to avoid the error, you could do this:
const permissionName = "clipboard-write" as PermissionName;
navigator.permissions.query({ name: permissionName }).then(result => {});

This is working in typescript 4.0.5.
Note: Safari doesn't support permissions API. You'll need to add check before using it in Safari case.
https://caniuse.com/?search=permission

This bag again occurs. Updated to typescript 4.4.2 and i see such error:

But microphone must be allowed type!

+1, seeing the same issue with { name: 'gyroscope' }. Using type assertion via as PermissionName circumvents this for now.
The W3C Working Draft on the Permissions API lists a couple more PermissionName enums:

https://www.w3.org/TR/permissions/#dom-permissionname

Note that this is not a complete list however: e.g. gamepad is not listed here. Instead, the draft does state:

The APIs and features in scope for the Permissions Policy specification go beyond those identified in this specification's PermissionName enum (e.g., "sync-xhr" and "gamepad").

Merging the W3C PermissionName with the MDN list linked by the OP and the list TypeScript currently implements, we could expand to the following type:
type PermissionName = "accelerometer" | "accessibility-events" | "ambient-light-sensor" | "background-fetch" | "background-sync" | "bluetooth" | "camera" | "camera'" | "clipboard-read" | "clipboard-write" | "display-capture" | "gamepad" | "geolocation" | "gyroscope" | "magnetometer" | "microphone" | "midi" | "nfc" | "notifications" | "payment-handler" | "persistent-storage" | "push" | "screen-wake-lock" | "speaker-selection" | "sync-xhr" | "xr-spatial-tracking";

Unless we also allow any other string, this list will need to be continuously maintained as new Permissions get developed.

Ok, there is old PR to this #34562, which was closed because of necessity to make this changes in https://github.com/Microsoft/TSJS-lib-generator.
I've done some search in there and found this: https://github.com/microsoft/TypeScript-DOM-lib-generator/blob/main/inputfiles/removedTypes.jsonc
So looks like all the missing properties are not just missing - they are removed for some reason. Any ideas why?

Any updates please?

+1'ing, also missing camera from PermissionName

Seems like they were removed in #1034. No idea why…

This is such an old issue and no idea why it's still not addressed!

^^^ status? same err ...

+1 same error with michrophone

@sandersn looks like no one has been able to send a PR for this - please see what we need to do

We require implementation in two engines for something to be added to lib.dom.d.ts.
Chromium browsers support a lot more permissions, but neither Firefox nor Safari do. The table https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API#permissions_interface shows that the current union in lib.dom.d.ts is correct (actually, it has two extra entries that don't show up in MDN's list.)

Same error here. I've used the workaround, but it doesn't actually let me record anything when actually getting the permission. Maybe the workaround doesn't work anymore.

this list needs to be updated, Mozilla list is small but chrome is longer
https://searchfox.org/mozilla-central/source/dom/webidl/Permissions.webidl#10
https://chromium.googlesource.com/chromium/src/+/refs/heads/main/third_party/blink/renderer/modules/permissions/permission_descriptor.idl
https://github.com/WebKit/WebKit/blob/main/Source/WebCore/Modules/permissions/PermissionName.idl
src: https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query

We require implementation in two engines for something to be added to lib.dom.d.ts.

According to this rule, looking at the MDN page, it seems like the type should be:
type PermissionName = "camera" | "geolocation" | "microphone" | "notifications" | "persistent-storage" | "push";

What was the end result of this case?

We require implementation in two engines for something to be added to lib.dom.d.ts.

Following the above rules, I think some types should be added.

in my case, I had a project where I imported several plugins directly that used a different version of typescript, so when I used vscode auto-import I imported the classes directly from the src folder instead of the package name
doing a build to the plugins and then proceeding to install them and making sure they were imported from their package name solved my problem.


If I have both then can I pick stack?

I have a project I build with both cabal v2 and stack. Could we please supplement the logic here so that if I have both then there's a way for me to choose stack?
https://github.com/Avi-D-coder/implicit-hie/blob/88e8f1cf96c6d998db6e2b25ec3d3a3c14b6e6b6/app/Main.hs#L23-L28

I would happily take a PR that added this as a flag.

I think it would also make sense to be able to specify it on the cli.
E.g. gen-hie --stack

Yeah I was meaning something like gen-hie --type stack, but --stack or --cabal works too


Nuxt.js,

The example from README doesn't work if you put it to a not the index page of a Nuxt.js project.

Create nuxt.js project
Add the README example to a not the index page
Navigate from index the that new page. -> console is full of errors.

TypeError: Cannot read property 'elements' of undefined
    at n (index.js:60)
    at r (index.js:65)
    at VueComponent.beforeMount (index.js:129)
    at callHook (vue.runtime.esm.js:2891)
    at mountComponent (vue.runtime.esm.js:2738)
    at VueComponent.webpackJsonp../node_modules/vue/dist/vue.runtime.esm.js.Vue$3.$mount (vue.runtime.esm.js:7891)
    at init (vue.runtime.esm.js:4061)
    at hydrate (vue.runtime.esm.js:5892)
    at VueComponent.patch [as __patch__] (vue.runtime.esm.js:6007)
    at VueComponent.Vue._update (vue.runtime.esm.js:2633)

I debugged it down to the init() function in src/stripeElements.js. If I put in it
console.log(window.Stripe)

then it prints the stripe factory. So, I'm 100% Stripe was loaded by that time. And I can see it in the <head>.
I cannot figure out how to fix initialization to make it work.
Any workarounds are welcome too.
Please, help.

Found a workaround.

Do not add stripe v3 <script> to your index.html as README suggests.
Do not display vue-stripe-elements-plus components. Hide them behind v-if.
Load the stripe v3 script dynamically on the created() or mounted() Vue hook. E.g.:

    created () {
      if (process.browser) {
        let domElement = document.createElement('script')
        domElement.setAttribute('src', 'https://js.stripe.com/v3/')
        domElement.onload = () => {
          this.loadedStripe = true
        }
        document.body.appendChild(domElement)
      }
    },

Show the vue-stripe-elements-plus components previously hidden behind the v-if. See this.loadedStripe = true above.

Hope this helps someone else.

Thank you for sharing details of your issue and the workaround. Unfortunately Nuxt.js support is missing in<EMAIL_ADDRESS>but we will consider adding it in next major version.

It really saved my day. Thanks

Able to get it to work using <NoSsr>
Example
<template>
  <div>
    <NoSsr>
      <CardNumber stripe="YOUR_KEY"/>
    </NoSsr>
  </div>
</template>

<script>
import { CardNumber } from 'vue-stripe-elements-plus'

export default {
  components: { CardNumber }
}
</script>


Allow to specify field "encrypt" on mssql target

Feature description
In order to connect to SQL Server Database I had to use in .dlt/secrets.otml the following escamotage:
[destination.mssql.credentials]
database = "DesmosColombiniTest" # please set me up!
password = "<mysuser>" # please set me up!
username = "<mypassword>;Encrypt=no" # please set me up!
host = "<IP_ADDRESS>" # please set me up!
port = 1433
connect_timeout = 15
encrypt = "no"
drivername = "ODBC Driver 18 for SQL Server"

As you can see the field=values Encrypt=no was inserted into the username field
Are you a dlt user?
I'd consider using dlt, but it's lacking a feature I need.
Use case
Was a test of completeness
Proposed solution
Insert a new field .dlt/secrets.otml in [destination.mssql.credentials]
Encrypt=yes|no
Related issues
No response

@gbonazzoli you can pass any additional parameters using SQLAlchemy like connection string, see here:
https://dlthub.com/docs/dlt-ecosystem/destinations/mssql
so
# keep it at the top of your toml file! before any section starts
destination.mssql.credentials="mssql://loader:<password>@loader.database.windows.net/dlt_data?connect_timeout=15&Encrypt=no"

should do the trick


0.13.0 st.98.5

Instructions:

The PR has to be tagged with at least one of the following labels (*):

feature
bugfix
performance
ui
backward-incompat
release-notes (**)

Remove these instructions before publishing the PR.

(*) Other labels to consider:

testing
dependencies
docker
kubernetes
observability
security
code-style
extension-point
refactor
cleanup

(**) Use release-notes label for scenarios like:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

This was created by mistake. Closing it.


Build up spread index

Codecov Report
Base: 99.68% // Head: 99.72% // Increases project coverage by +0.03% :tada:

Coverage data is based on head (856505b) compared to base (f2f4394).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #50      +/-   ##
==========================================
+ Coverage   99.68%   99.72%   +0.03%
==========================================
  Files          22       25       +3
  Lines         316      358      +42
  Branches       35       42       +7
==========================================
+ Hits          315      357      +42
  Misses          1        1

Flag
Coverage Δ

root
99.72% <100.00%> (+0.03%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/core/SpreadoSetup.ts
100.00% <ø> (ø)

src/core/SpreadIndex.ts
100.00% <100.00%> (ø)

src/core/evaluateFallback.ts
100.00% <100.00%> (ø)

src/core/generateSpreadKey.ts
100.00% <100.00%> (ø)

src/core/index.ts
100.00% <100.00%> (ø)

src/for-mobx-react-query/SpreadoSetupImpl.ts
100.00% <100.00%> (ø)

src/for-mobx-swr/SpreadoSetupImpl.ts
100.00% <100.00%> (ø)

src/for-redux-react-query/SpreadoSetupImpl.ts
100.00% <100.00%> (ø)

src/for-redux-swr/SpreadoSetupImpl.ts
100.00% <100.00%> (ø)

src/mobx/SpreadoMobXStore.ts
100.00% <100.00%> (ø)

... and 4 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Tracking: Internal ecosystem preparedness

Goal: We'd like to track progress on % of google3 code migrated. This will help us track progress towards our next Dart major version.
Frequency: we'd like to pull these stats on a weekly basis.
Todos

[ ] Measure: % of google3 code migrated.
[ ] Document how you pulled this information (can be in a doc or in this issue).
[ ] Automate a weekly report if possible.

I think the stats in go/dart-null-safety-stats should have what's needed for this.


add : Language translations version switcher  (Resolves #172)

This PR is add language Translations to the fortran-lang.org site.
This PR Resolves :
closes #172
Thanks and Regards,
Henil
CC @awvwgk

German = Deutsch
Dutch = Nederlands

cc @certik, @14NGiestas, @band-a-prend

Russian (ru) = Русский

Portuguese (pt) = Português


Added containedin groups

This groups remove django syntax highlighting from pythonString and pythonComment.

Good catch.  Thanks!


On tap of a notification does not open the App

Hi,
when I tap on a notification in background, the app is not opened and the notification disappears. Then, if I open the app, the event listener fires (and I can see the alert).
NotificationsAndroid.setNotificationOpenedListener((notification) => {
    console.log("Notification opened by device user", notification);
    alert(JSON.stringify(notification))
});

How can I do in order to open the app on tapping of the notification?

Hi, you can check here, my solution: https://github.com/wix/react-native-notifications/issues/301


Fix formatting

The GCloud translation API exposes a parameter for formatting, which by default is set to "html". This default assumes that the input text is HTML, which leads to the output being misformatted for special characters, such as in French:
J'aime becomes J'aime
This PR sets the default to "text", as our users are more likely to have plain text rather than HTML data. The PR makes it configurable via the recipe.json.
References:

https://googleapis.dev/python/translation/latest/_modules/google/cloud/translate_v2/client.html#Client.translate
https://googleapis.dev/python/translation/latest/client.html

By the way, don't forget to increase the version number by 0.0.1 before releasing

... and add changes to the CHANGELOG

... and add changes to the CHANGELOG

Good to merge?

... and remember to update the doc on https://www-preprod.dataiku.com/wp-admin/
I did it for the plugin info table, you need to update the screenshots and the usage doc with the new parameter.


[Feature] add support for partition_ttl  on materialized view

Fixes #issue
Introduce the partition_ttl property for Materialized View:
CREATE MATERIALIZED VIEW test.mv_ttl_mv1
 REFRESH ASYNC
 PARTITION BY k1
 PROPERTIES('partition_ttl'='2 month')
 AS SELECT k1, v1 FROM test.tbl1

The partition_ttl='2 month' means, retain partitions whose data is within two months.
At the meantime, the partition_ttl_number is not recommended.
What type of PR is this:

[ ] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 59 / 67 (88.06%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/common/util/PropertyAnalyzer.java
6
9
66.67%
[328, 329, 334]

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
7
8
87.50%
[3100]

:large_blue_circle:
com/starrocks/clone/DynamicPartitionScheduler.java
28
32
87.50%
[531, 542, 546, 555]

:large_blue_circle:
com/starrocks/catalog/MaterializedView.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/common/util/DynamicPartitionUtil.java
3
3
100.00%
[]

:large_blue_circle:
com/starrocks/catalog/TableProperty.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/alter/AlterMVJobExecutor.java
10
10
100.00%
[]

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[BE Incremental Coverage Report]
:heart_eyes: pass : 0 / 0 (0%)

[FE Incremental Coverage Report]
:heart_eyes: pass : 73 / 83 (87.95%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/common/util/PropertyAnalyzer.java
6
9
66.67%
[333, 334, 339]

:large_blue_circle:
com/starrocks/server/LocalMetastore.java
7
8
87.50%
[3209]

:large_blue_circle:
com/starrocks/clone/DynamicPartitionScheduler.java
28
32
87.50%
[531, 542, 546, 555]

:large_blue_circle:
com/starrocks/sql/common/PartitionDiffer.java
14
16
87.50%
[126, 130]

:large_blue_circle:
com/starrocks/catalog/MaterializedView.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/common/util/DynamicPartitionUtil.java
3
3
100.00%
[]

:large_blue_circle:
com/starrocks/catalog/TableProperty.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/alter/AlterMVJobExecutor.java
10
10
100.00%
[]

@Mergifyio backport branch-3.2 branch-3.1


mission_raw: implement mission changed based on opaque ID

This uses the new opaque mission ID to check if a mission has changed.
The implementation is backwards compatible. If the mission_id is 0, we
just use the previous way of checking for MISSION_ACK.
Spec: https://github.com/mavlink/mavlink/pull/2012
Closes #2324.

Nice one. YOu're busy!


Fix #2068 isValidGetter checks if return type of method is not void

Method isValidGetter of class Introspection checks if return type of
given method is not void
Added a test on Introspection_getProperty_Test that assures a exception
is thrown if getter method returns void
Added a test on PropertyOrFieldSupport_getValueOf_Test that assures a
field value is read even if a getter method with void return type exists
Check List:

Fixes #2068
Unit tests : YES
Javadoc with a code example (on API only) : NA

Integrated, thanks @weissreto!

Thanks @scordio for integrating and your work assertj


Add option to show metadata in original language

Defaults to off. the code may be ugly :/

Nice stuff!


Add pragma to optionally handle % the JS way.

Recently the % was made to behave pythonic.
But in some cases (e.g. following docs of JS libs) JS behaviour may be preferred.
__pragma__ ('jsmod') and __pragma__ ('nojsmod') will be introduced to facilitate this. Note that the default will (of course) be Python behaviour.

Committed and pip-installable as 3.5.232


Update headers instead of overwriting them

...so that we can pass Authentication headers through in Requests if desired (to configure authentication for our Splash instances on ScrapingHub).
Turns out this can also be done with HttpAuthMiddleware, but I only realized later after writing up this fix.

It makes sense, thanks @mikelambert!

Does it make more sense this or sending the requests to splash in args.headers? Splash and other middlewares will put headers there that are supposed to be sent to the end site, not splash (e.g. cookies, accept, if-modified-since...) almost every header I can think of should be sent to the end site, not splash.

@Youwotma I think you're right. I was thinking about adding a method to get request http headers from splash scripts, but it won't allow to set content-type or authorization headers; sending them in 'headers' argument is better.
Because it is already possible to use HttpAuthMiddleware to set auth headers it makes sense to revert this pull request - sorry @mikelambert!

I think my code is using HttpAuthMiddleware too, since I didn't want to depend on a patch. But there's not anything explicit in this code/patch about auth headers, it just fixes a FIXME in the code.
So feel free to revert, but I'd recommend either removing the FIXME or adding a comment telling folks who want to pass auth headers (such as myself when I ran into that comment) to use HttpAuthMiddleware instead.


Allow for skip to be a boolean type

Hardcoded true or false does not allow for variables of type boolean to be passed into the skip property. This resolves the type error for boolean variables used.

Resolves bug introduced from https://github.com/dotansimha/graphql-code-generator/pull/1926

Looks like same
#2242 https://github.com/dotansimha/graphql-code-generator/pull/2242

Looks like same
#2242 #2242

Believe the revert is not necessary but either will do from my perspective. Was trying to honor the initial intent of https://github.com/dotansimha/graphql-code-generator/pull/1926 in this PR.

I do not think this is necessary?
This code works fine:
const { data } = useMeQuery({ skip: auth.isLoggedIn === false });

On Componentsthe follwoing works:
<SpotifyTrackSearchComponent
  {...(inputValue
    ? { variables: { data: { term: inputValue } } }
    : { skip: true })}
/>;

It makes for simpler code;
const [selectedUserId, set] = useState(null);
...
<MyQuery variables={{userId: selectedUserId}} skip={!selectedUserId}>
  {(data) => ...}
</MyQuery>

(Also this is the pattern used in the Apollo docs.)

But wouldn't this be a type error as the variables would be incorrect (expected string got null)?

Okay; assume it’s a value that is valid (e.g. zero) but you know won’t work.

(Or that there’s an external trigger for it, some other state separate from variables.)

Here’s a concrete use case: searching to see if a username has already been taken. The value of username will always be a string, starting with "". Your skip may be !usernameIsValid || username.length < 3 since there’s no point checking until they’ve typed at least three characters.

The use case seems legit to me!
But wouldn't this change allow to omit setting the variables even if skip is false?
const [selectedUserId, set] = useState(null);
...
<MyQuery skip={!selectedUserId}>
  {(data) => ...}
</MyQuery>


Sync published with master (#8693)

Adding Azure note (#8566)

Adding Azure note

Rephrase additional line and update link

Revert "Netlify redirects interlock (#8595)"

This reverts commit a7793edc746fc3374f1b4a637bf4d528dd2bbcef.

UCP Install on Azure Patch (#8522)

Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :)

Correct Pod-CIDR Warning

Content cleanup

Please check that I haven't changed the meaning of the updated prerequisites.

Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng.

Incorporated Steven F's feedback and Issue 8551

Provide a warning when setting a small IP Count variable

Final edits

Update install-on-azure.md

Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command

Removed Orchestrator Tag Pre Req from Azure Docs

Clarifying need for 0644 permissions

Improved backup commands (#8597)

Improved backup commands

DTR image backup command improvements:

Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work.
The new commands automatically populate the correct replica ID and add a datestamp to the backup filename.

DTR Metadata backup command improvements:
DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls:

The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica.
Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag.
Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup.
Described these improvements for the user.

Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas.

Technical and editorial review

More edits

line 8; remove unnecessary a (#8672)

line 8; remove unnecessary a

Minor edit

Updated the UCP Logging page to include UCP 3.1 screenshots (#8646)

Added examples (#8599)

Added examples

Added examples with more detail and automation to help customers backup DTR without creating support tickets.

Linked to explanation of example command

@omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts.
We can re-add in a follow-up PR, if you think that example is crucial to this page.

Remove deadlink in the Interlock ToC (#8668)

Found a deadlink in the Interlock ToC

Added Redirect

Published (#8674)

add slack webhook to Jenkinsfile

make jenkinsfile serve private and public docs

After a couple of Jenkins-based mix-ups it became obvious we needed a Jenkinsfile that would serve both public and private projects, that we could move between repos without worry. This Jenkinsfile knows which images to build and push and which swarm services to update because of the use of git_url and branch conditions.

Sync published with master (#8619)

Update install.md

add note: 8 character password minimum length

Include Ubuntu version in Dockerfile

more recent versions of Ubuntu don't work with the given Dockerfile

Updated the 3.1.4 release notes to include Centos 7.6 support

Remove redundant "be"

Update the "role-based access control" link

On page "https://docs.docker.com/ee/ucp/user-access/", update the hyperlink "role-based access control" to point to "https://docs.docker.com/ee/ucp/authorization/" instead of "https://docs.docker.com/ee/access-control".

Add UCP user password limitation

Revert "Updated the UCP 3.1.4 release notes to include Centos 7.6 support"

Adding emphasis on Static IP requirement (#7276)

Adding emphasis on Static IP requirement

We had a customer (00056641) who changed IPs like this all at once, and they are in a messy status.    We should make it clear that static IP is absolutely required.
***-ucp-1-dw original="<IP_ADDRESS>" updated="<IP_ADDRESS>"
***-ucp-2-dw original="<IP_ADDRESS>" updated="<IP_ADDRESS>" ```

* Link to prod requirement of static IP addresses

* Adding warning about layer7 config (#8617)

* Adding warning about layer7 config

Adding warning about layer7 config not being included in the backup

* Text edit

* Sync published with master (#8673)

* Revert "Netlify redirects interlock (#8595)"

This reverts commit a7793edc746fc3374f1b4a637bf4d528dd2bbcef.

* UCP Install on Azure Patch (#8522)

* Fix grammar on the 2nd pre-req, and did markdown formatting on the rest :)

* Correct Pod-CIDR Warning

* Content cleanup

Please check that I haven't changed the meaning of the updated prerequisites.

* Create a new section on configuring the IP Count value, also responded to feedback from Follis, Steve R and Xinfeng.

* Incorporated Steven F's feedback and Issue 8551

* Provide a warning when setting a small IP Count variable

* Final edits

* Update install-on-azure.md

* Following feedback I have expanded on the 0644 azure.json file permissions and Added the --existing-config file to the UCP install command

* Removed Orchestrator Tag Pre Req from Azure Docs

* Clarifying need for 0644 permissions

* Improved backup commands (#8597)

* Improved backup commands

DTR image backup command improvements:

1. Local and NFS mount image backup commands were invalid (incorrectly used -C flag). Replaced them with commands that work.
2. The new commands automatically populate the correct replica ID and add a datestamp to the backup filename.

DTR Metadata backup command improvements:

DTR metadata backups are more difficult than they need to be and generate many support tickets. I updated the DTR command to avoid common user pitfalls:

1. The prior metadata backup command was subject to user error. Improved the command to automatically collect the DTR version and select a replica.
2. Improved security of the command by automatically collecting UCP CA certificate for verification rather than using --ucp-insecure-tls flag.
3. Improved the backup filename by adding the backed-up version information and date of backup. Knowledge of the version information is required for restoring a backup.
4. Described these improvements for the user.

Image backup commands were tested with local and NFS image storage. The metadata backup command was tested by running it directly on a DTR node and through a UCP client bundle with multiple replicas.

* Technical and editorial review

* More edits

* line 8; remove unnecessary a (#8672)

* line 8; remove unnecessary a

* Minor edit

* Updated the UCP Logging page to include UCP 3.1 screenshots (#8646)

* Added examples (#8599)

* Added examples

Added examples with more detail and automation to help customers backup DTR without creating support tickets.

* Linked to explanation of example command

@omegamormegil I removed the example with prepopulated fields, as I think it doesn't add much, and will only add confusion. Users who need this much detail can run the basic command and follow the terminal prompts.

We can re-add in a follow-up PR, if you think that example is crucial to this page.

* Remove deadlink in the Interlock ToC (#8668)

* Found a deadlink in the Interlock ToC

* Added Redirect

* Trying to fix command rendering of '--format "{{ .Names }}"' (#8678)

* Trying to fix command rendering of '--format "{{ .Names }}"'

--format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix.

* Fixed heading inconsistency

* Trying to fix command rendering of '--format "{{ .Names }}"' (#8677)

* Trying to fix command rendering of '--format "{{ .Names }}"'

--format "{{ .Names }}" is showing up in the markup but is rendering as --format "" in the published version. Added {% raw %} tags to try to fix.

* Update concatenated to chained

* Minor fix

* interlock --> ucp-interlock (#8675)

* interlock --> ucp-interlock

* Fixed code samples

- Use the latest UCP version and the latest ucp-interlock image
- Leverage ucp page version Jekyll variable

* Typo

* Final syntax fix

* Update backup.md

* Removed Reference to Interlock Preview Image, and added relevant UCP Image Org and Tag

* Fix syntax error which caused the master build to fail

<!--Thanks for your contribution. See [CONTRIBUTING](CONTRIBUTING.md)
    for this project's contribution guidelines. Remove these comments
    as you go.

    DO NOT edit files and directories listed in _data/not_edited_here.yaml.
    These are maintained in upstream repos and changes here will be lost.

    Help us merge your changes more quickly by adding details and setting metadata
    (such as labels, milestones, and reviewers) over at the right-hand side.-->

### Proposed changes

<!--Tell us what you did and why-->

### Unreleased project version (optional)

<!--If this change only applies to an unreleased version of a project, note
    that here and base your work on the `vnext-` branch for your project. If
    this doesn't apply to this PR, you can remove this whole section.
    Set a milestone if appropriate. -->

### Related issues (optional)

<!--Refer to related PRs or issues: #1234, or 'Fixes #1234' or 'Closes #1234'.
    Or link to full URLs to issues or pull requests in other Github projects -->

Deploy preview for docsdocker ready!
Built with commit 88f14ae4cc3884533e08ed433a460299f77a2624
https://deploy-preview-8694--docsdocker.netlify.com

Deploy preview for docsdocker ready!
Built with commit ce7f8ab06d32b91f93de6688ad7d9b4f49b7ca66
https://deploy-preview-8694--docsdocker.netlify.com


add func: load_latest_options

add func: load_latest_options

@huachaohuang PTAL

I think you can provide a wrapper for ColumnFamilyDescriptor to avoid some ugly code:
struct ColumnFamilyDescriptor {
    inner: *mut DBColumnFamilyDescriptor,
}

impl ColumnFamilyDescriptor {
    fn new();
    fn name(self) -> &str;
    fn options(self) -> XXX;
}

impl Drop for ColumnFamilyDescriptor {
}

And you can create a vector of ColumnFamilyDescriptor in the Rust side and pass an array of the inner pointer to the C side.

CI failed, please help to fix it.

@huachaohuang @zhangjinpeng1987 PTAL


test public validation scenario

Just for testing

Docs Build status updates of commit cb7c152:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RepositoryInformationNotFound] Cannot find repository information for 216f42cc-89bb-929d-dc34-7d0a3d43dfe8. Please make sure the repository is correctly provisioned. If it is not this case, please open a ticket on https://aka.ms/SiteHelp.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Remove leaves from SplitPoints

leaves is kind of unnecessary because all usages can be replaced with
toCollect.
The difference between the two is that toCollect can contain scalar
functions.
For example:
aggregation: sum(x + 10)
leaves:      x, 10
toCollect:   x + 10

Now it doesn't matter if we build:
CollectPhase
    toCollect:  [x, 10]
    grouping:   sum(add(inputColumn(0), 10))

Or:
CollectPhase
    toCollect:  [add(x, 10)]
    grouping:   sum(inputColumn(0))

Codecov Report

Merging #5281 into master will increase coverage by 0.08%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #5281      +/-   ##
============================================
+ Coverage     82.66%   82.74%   +0.08%
  Complexity    11020    11020
============================================
  Files          1327     1326       -1
  Lines         44830    44808      -22
  Branches       5620     5620
============================================
+ Hits          37057    37077      +20
+ Misses         5161     5128      -33
+ Partials       2612     2603       -9

Impacted Files
Coverage Δ
Complexity Δ

.../planner/projection/builder/SplitPointVisitor.java
94.73% <ø> (-0.14%)
13 <0> (ø)

.../crate/planner/projection/builder/SplitPoints.java
100% <100%> (ø)
4 <0> (-2)
:arrow_down:

...ner/consumer/ReduceOnCollectorGroupByConsumer.java
89.47% <100%> (ø)
2 <0> (ø)
:arrow_down:

...rate/planner/consumer/GlobalAggregateConsumer.java
85.08% <100%> (ø)
14 <0> (ø)
:arrow_down:

...e/planner/consumer/DistributedGroupByConsumer.java
100% <100%> (ø)
2 <0> (ø)
:arrow_down:

...lanner/consumer/NonDistributedGroupByConsumer.java
100% <100%> (ø)
2 <0> (ø)
:arrow_down:

...a/io/crate/metadata/sys/SysSnapshotsTableInfo.java
82.85% <0%> (-5.72%)
6% <0%> (-1%)

...executor/transport/TransportShardDeleteAction.java
66.03% <0%> (-1.89%)
10% <0%> (ø)

...c/main/java/io/crate/jobs/JobExecutionContext.java
90.51% <0%> (-1.73%)
22% <0%> (-1%)

...main/java/io/crate/jobs/PageDownstreamContext.java
81.2% <0%> (-1.35%)
45% <0%> (-2%)

... and 20 more

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 3176599...4cbbba4. Read the comment docs.


fix sporadic failures due to autoload

closes gh-982

Pull request acceptance prerequisites:

[x] Signed the CLA (if not already signed)
[ ] Rebased/up-to-date with base branch
[ ] Tests pass

Since this is a community submitted pull request, a Jenkins build has not been kicked off automatically. Can an Elastic organization member please verify the contents of this patch and then kick off a build manually?

@tylerjl could you merge this PR as quick fix until the module got completly rewritten?
As far as i can see the tests only fail because of debian jessie (backports etc.)
Debian Jessie backports are already unmaintained and were moved to another location. As module officially only supports puppet 4.10.0 onwards we could most likly drop debian 8 testing as it comes with puppet 3.x and backports (unmaintained) only have 4.8.2.


LTS Version of Node Not Supported

Problem Description
No longer works with the latest LTS of Node, still requiring version 12 or 14.
Steps To Reproduce

Run the script with the current LTS version of Node (16).

Screenshot and/or gif
This is with version 18 but the result is the same with 16.

https://app.intercom.com/a/inbox/hrpt54hy/inbox/admin/4146159/conversation/46884633151315


Add upper version limit for rdflib

rdflib 5.0.0 reworked some amount of their interface, which breaks things here. Minimally, SPARQLWrapper is no longer used, and a requests based wrapper internal to rdflib is now used, which breaks compatibility with older RDF stores that do not follow the SPARQL Protocol 1.1 spec. Setting this to minimize the break here, with a look to move to rdflib 5 in the next major version bump of gutenberg itself.

Codecov Report

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

@@           Coverage Diff           @@
##           master     #131   +/-   ##
=======================================
  Coverage   95.74%   95.74%
=======================================
  Files          29       29
  Lines        1033     1033
=======================================
  Hits          989      989
  Misses         44       44

Impacted Files
Coverage Δ

setup.py
0.00% <ø> (ø)

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 378a7b4...5f4c743. Read the comment docs.

Will fix the azure pipelines and then merge.


[MM-20489] Migrate failed_post_options and its tests to typescript

Summary

Migrates failed_post_options module and its tests to TypeScipt

Adds getPostMock function to utils/test_helper

Uses the newly added getPostMock function in rhs_thread.test

Uses getChannelMock function in rhs_thread.test

Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/15452, https://mattermost.atlassian.net/browse/MM-20489

Hello @abdusabri,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

@devinbinnie or @agarciamontoro can you merge this PR so that other PRs can merge master and use the util function? 🙂
Thanks!

/update-branch

I'll merge this as soon as tests pass. Thank you again, @abdusabri :)


Wrong hash with tightly packed grouping containing bytes32

Hello, thank you for this module it has been awesome.
I am running into an issue when bytes32 get involved. I have added in a breaking test here: in my forked repo https://github.com/SeanAvery/solidity-sha3/blob/master/test/spec.js
/* breaking test with the [address] and [Bytes32] types */
  it('should hash an address and bytes32', () => {
    const bytes32 = '0x7f56519fe6e5706e723472832ea70adaff6f4732d8f7f5d3e20ab4834eae5cab'
    const address = '0xf38c766fd517e0ddcd81ceced7087b4e74d9e7f5'
    const actual = '0xe6f2cd5dea12a20c2cf66da4f82858ec5c92c8df172323ef62ac8877f428bdbc'
    sha3(address, bytes32).should.equal(actual)
  })

When I console log the padded args before it goes into web3.sha3 everything is looking good
0xf38c766fd517e0ddcd81ceced7087b4e74d9e7f50x7f56519fe6e5706e723472832ea70adaff6f4732d8f7f5d3e20ab4834eae5ca b
I am actually wondering wether this is an issue with web3 sha3 because I have been also having issues with ethereumjs-abi which does tightly packed hashing.

i was having issues with packing as well and noticed that if you have 2 strings they both have the hex 0x prefix when they are converted to hex so when they are concatenated the packing breaks
0xf38c766fd517e0ddcd81ceced7087b4e74d9e7f5 0x 7f56519fe6e5706e723472832ea70adaff6f4732d8f7f5d3e20ab4834eae5ca b
From what the solodity docs say they just need to be concatenated as the example here
http://solidity.readthedocs.io/en/develop/abi-spec.html#abi-packed-mode
This issue doesn't apply to numbers they get converted without 0x so having sha3(string, num) is ok while sha3(num, string) breaks.
Remove any subsequent 0x except from the beginning and it should be fine


ModuleConcatenationPlugin is setting modules[].reasons[].moduleId to null in some cases

Bug report

What is the current behavior?
It would appear that when using ModuleConcatenationPlugin (which is default for mode = production), that the modules that it concatenated do not properly have module ids in the output stats. More specifically, if a reason for given module is from a module that has been concatenated, then the moduleId of that reason is null. I would not expect that to be the case.
If the current behavior is a bug, please provide the steps to reproduce.
Reproduction Project:
https://github.com/joeljeske/webpack-module-concatenation-plugin-issue

What is the expected behavior?
Every reason for module should have a moduleId that corresponds with the id of a module

Other relevant information:
webpack version:  4.19.1
Node.js version:  v8.11.3
Operating System: MacOS 10.13.4
Additional tools: N/A

Concatenated modules don't have ids. All modules have identifiers.

How would you recommend that I traverse the dependency tree using the stats? Is there any way to do this?

You can use moduleIdentifier and identifier. This is always set and unique.

Answer above


[Bug] Proposed CC0 1.1 contains invalid encoding declaration

Description

According to the HTML Standard, a meta element can have its http-equiv attribute set to content-type. In this situation, the http-equiv attribute is in the Encoding declaration state. The proposed CC0 1.1 has an http-equiv attribute that’s in the Encoding declaration state.
<meta http-equiv="content-type" content=
  "text/html; charset=utf-8" />

According to the HTML Standard, “The Encoding declaration state may be used in HTML documents, but elements with an http-equiv attribute in that state must not be used in XML documents.” The proposed CC0 1.1 is an XML document.
Reproduction

Get a copy of the proposed CC0 1.1.
Change its file extension to .xht or .xhtml.
Try validating it.

Expectation

The page validates successfully.
Resolution

[x] I would be interested in resolving this bug.

I would be interested in resolving this bug.


lsp_finder throws an error on latest

Describe the bug
When running :Lspsaga lsp_finder I get the following error. This is using the typescript lsp in lazyvim.
   Error  09:12:29 msg_show.lua_error Error executing Lua callback: .../share/LazyVim/lazy/lspsaga.nvim/lua/lspsaga/command.lua:71: attempt to call a nil value
stack traceback:
	.../share/LazyVim/lazy/lspsaga.nvim/lua/lspsaga/command.lua:71: in function 'load_command'
	...local/share/LazyVim/lazy/lspsaga.nvim/plugin/lspsaga.lua:8: in function <...local/share/LazyVim/lazy/lspsaga.nvim/plugin/lspsaga.lua:7>

Steps to reproduce
I have tested using a default config of Lazyvim with typescript language server installed.
Lazyvim config: https://github.com/jgchristopher/TestLazyVimConfig
This is one of the Typescript repos I was working in and getting the error. https://github.com/jgchristopher/obsidian-clipper
rolling back to lspsaga commit 4f075452c466df263e69ae142f6659dcf9324bf6 works. This was the previous version I was on.
Expected behavior
Before updating to latest the lsp_finder would come up as expected.
Neovim version (nvim -v)
0.9.1
lspsaga commit
d8fca84e8cb9a53f5d511b90e47ff485c24aae20
Terminal name/version
wezterm 20230408-112425-69ae8472

Now it's finder, not lsp_finder

@jgchristopher update your mappings what @alextrastero said

ah, ok. Thanks!


Exposing utils to a styled component

I'm just wondering if there's a good approach to exposing the utils in the styled component or if this is even a good idea?? Here's what I've came up with:
import * as React from "react";
import { styled, css, utils } from "../css";
import { PolymorphicComponent } from "react-polymorphic-box";

type ViewProps = Parameters<typeof css>[0];

export const View: PolymorphicComponent<ViewProps, "div"> = styled(
  ({ as, ...props }) => {
    const [cssProps, restProps] = React.useMemo(() => {
      const keys = Object.keys(utils);
      return Object.keys(props).reduce(
        ([cssProps, restProps], k) => {
          const v = props[k];
          if (keys.includes(k)) {
            return [{ ...cssProps, [k]: v }, restProps];
          } else {
            return [cssProps, { ...restProps, [k]: v }];
          }
        },
        [{}, {}]
      );
    }, [props]);

    const viewCss = React.useMemo(() => {
      return css(cssProps);
    }, [cssProps]);

    return <styled.Box {...restProps} className={viewCss} as={as || "div"} />;
  }
);

My other components will compose this base component and so will also have access to the utilities (which are driven by the tailwind utils). I think it would be nice to have it exposed like this for initial prototyping, etc and gives a similar workflow to using tailwind.
The component is consumed as follows:
export const MyComp = () => {
  return (
      <View mb={4} pt={2}>
          Some content here...
      </View>
  );
};

It could definitely be done, but I'm not sure it aligns with the objective of this library. I'm open to the idea, but would like to wait till after its officially launched and get some feedback.
I think Styled System mainly popularised this pattern, but since that wasn't built with Typescript, some issues weren't apparent.
I've used this approach a lot for long periods, and I do agree that overall it's a nice experience.
However, IMO, it's only a pleasant experience to an extent:

add margin, padding and background colour
when you have very few props

Then, it has quite a few drawbacks:

prop clashes with valid HTML Attributes
responsive styles were too distributed
individual components only expose specific props
extending component required extra TS typings

I think unifying all the utils in a single css prop is a really good approach. Every Stitches component supports it, so its something you learn once. It supports all CSS Properties, media queries, responsive values and token-aware values. It's fully types and has no clashes between variants/props with HTML Attributes.

Thanks for getting back to me so quickly @peduarte. Yes I think it's best to wait until the initial release to see how it would fit in. And yep there's quite a few drawbacks to just passing in top level props and it can easily get out of hand when there's too many. The approach of using a single prop does seem to be the better option.
Just one question, do you think it will be possible to support passing a plain object to the css prop? E.g.
<MyStyledComp css={{margin: 1}} />

I think this would be just as convenient as passing top level props.
Thanks!

Yep that would work too 👌


Add support to specify multiple jenkins credentials with the same username

Sometimes it is needed to have multiple credential sets in Jenkins using the same username but different passwords. This is the case, when using JFrog artifactory, here you need encrypted passwords to access artifactory, while you need plain plassword to access stash. (Both services AD integrated as common in larger enterprises).
This fix adds support to specify multiple credentials with same username but different uuid. It also fixed the remove logic (making it idempotent) and fixes the matching for usernames (more specifiy grep expression).
Same result that is fixed by this commit can be achieved using the new experimental resource type jenkins_credentials, however this resource type does not work on PuppetServer using jruby as due to puppet_x library location (https://tickets.puppetlabs.com/browse/SERVER-973).

@elconas Did you try the jenkins_credentials type?  It will handle multiple credentials with the same username.

Yes, but the Provider does not work on puppetserver

Hopefully, the issues with puppetserver have been sufficiently kludged around in this module already.  I'm going to close this PR as I don't want to accept new functionality outside of the native types.


Highlight critical security releases in release history

See https://github.com/nodejs/nodejs.org/commit/8521c615dd52d2aa24269321777e428f54ee544b#commitcomment-12112622

The tricky thing here will be that this list is automatically built based on https://iojs.org/dist/index.json -- we do have the OpenSSL version there, which maybe we could use in our template to tag good/bad versions in some way?

I think it's better to add another field, because it could be a critical release due to bugs in OpenSSL, V8, node/io itself, … It could either be a simple boolean, a text field or an array of CVE numbers (I'd prefer the last one, so you can look up the details)


Change groupID and artifactID of OOTB shipped connectors

With https://github.com/wso2/product-is/issues/10612 we have moved few ootb shipped connectors to plugins. Along with this it would be ideal to change the groupid and artifactid of these connectors,
Specifically,

Change the group ID, artifact ID to remove "connector", "extension" in the name as it is shipped with the product in plugins now
Change the feature ID to remove "connector", "extension" in the feature id

Change of groupID requires changes on the nexus side as well.
Some suggestions,

TOTP
  | groupId | artifactId
-- | -- | --
Existing | org.wso2.carbon.extension.identity.authenticator.outbound.totp | org.wso2.carbon.extension.identity.authenticator.totp.connector
Proposed | org.wso2.carbon.identity.application.auth.totp | org.wso2.carbon.identity.application.authenticator.totp

Email OTP

| groupId | artifactId
-- | -- | --
Existing | org.wso2.carbon.extension.identity.authenticator.outbound.emailotp | org.wso2.carbon.extension.identity.authenticator.emailotp.connector
Proposed | org.wso2.carbon.identity.application.auth.emailotp | org.wso2.carbon.identity.application.authenticator.emailotp
We can also looking at a group id like org.wso2.carbon.identity.mfa for these authenticators

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


fix(checkbox): no side margin if label has no content

Remove side margin in checkbox if label has no content.
Use checkboxNativeElement instead of checkboxDebugElement.nativeElement in expect statements.
Fix typo.

Closes #2011

LGTM

Could we not move that margin to the label element and then remove it using the :empty pseudo-class? That would be way simpler.

@jelbourn I totally agree that with such pseudo-class it will be way simpler and better because that's a styling problem. I tried it but couldn't make it work. Using :empty match whitespaces as content and don't apply the changes if we have any whitespace. I saw a pseudo-class :blank which handles whitespaces but unfortunately the browsers don't supported it.

Is there some update about the PR and potentially merging it?

@belev I want to dedicate a chunk of time to investigate this more in depth but haven't yet had the opportunity. I'll come back here and update when I do.

@jelbourn Great, looking forward to it.
P.S. sorry for the delayed rebase, I didn't see the changed label.

I addressed the comments but can't understand why the build fails.

@belev Probably a Travis bug, happens sometimes as far as I know. Can you restart the CI process?

@dahaupt I don't think so, doesn't see any restart button. Maybe I can force it by closing and opening the PR or making some new dummy commit but don't think that's a good idea.

Yeah looks like a flake. Is your PR rebased properly? Also restarted the build manually.

What do you mean by properly rebased?

I meant rebased on top of master?

No, it is not.

That could have caused the SyntaxError in the Travis CI. Just that you know, rebasing could solve those issues.

Thanks. So I assume it is better to always rebase on top of master?

@belev Yep always :)

Ok, thanks. I will make the proper rebase when I have time then.

Done, after all :smile:

This change broke the layout of my login screen :(
When rendering:
<md-checkbox [(ngModel)]="savePassword">{{ "tx_Login_SavePassword" | translate }}
It considers that is has no label at render time and therefore renders the checkbox without its margin (until one clicks on the checkbox).

@w3t Please file a new issue and provide a Plunker demo for reproduction?


Support Fastly-RateLimit-Remaining

Lets apps observe how close they are to a 429 Too Many Requests HTTP response from Fastly.
Fixes https://github.com/fastly/go-fastly/issues/336

Some users will also want to see the Fastly-RateLimit-Reset header.
An alternate approach might be to register a callback that gets both headers whenever they are received.

Oh, and maybe it's worth implementing a similar solution for Fastly-RateLimit-Reset.

The method name is a bit awkward...


Documentation for ord module.

We need to write doccumentation for the ord module. This includes:

[x] list
[x] build
[x] link
[x] map
[x] name
[x] set

This was resolved as part of PR 21 (https://github.com/aetherus-wg/Aetherus/pull/21) and commit ad5a8efe822471edbe9c89a16ee538f27606d021 on 2022-01-10. Closing this issue and moving to complete.


Is the app dead ?

can not be found on Google play store a
nd the F-Droid vesion does not seem to be installable.

I noticed the same, I can install via f-droid (aurora droid) but there is also a warning that the App is being developed for an older Android version so some stuff might not work. When asking for location permission, I notice there is only one option to allow location while using the app, there is no option to let it run also when the app is in the background, which I guess it might have bad implications for determining the location properly.
@schollz should people avoid the app?

Also the website https://www.internalpositioning.com/ works for me but I get nothing when trying to go to the FIND3 docs: https://www.internalpositioning.com/doc/


How do I ungroup apps in a group?

Title
For example I would like to make browser windows into its own sets/groups

You mean switch to a scene without a browser?
I got it working this time, maybe there is a bug.
Although, if I dragged all apps into current scene, how do I group them again?


Redis::connect(): SSL: Handshake timed out

Laravel Version: 6.18.36
PHP Version: 7.2.33 and 7.3.21
Database Driver & Version: MYSQL 5.7.31

Description:
When updated laravel version redis stopped working.
I have changed configurations and try various options, nothing worked.
Also i removed and reinstall phpredis extension but still nothing.
I believe the problem has something to do with this  pull request
Also problem seems to be on unix machines only, windows are working.
If i revert to version 6.18.35 is working perfectly
Steps To Reproduce:
Update laravel 6.x to latest version
Set your REDIS_CLIENT  in env to phpredis
Set your CACHE_DRIVER in env to redis

Maybe also related to https://github.com/laravel/framework/pull/34017#issuecomment-680724904  🤔

Should be fixed now in 6.18.37


Batch delete documents instead of deleting them one by one in update lifecycle.

See #611
Currently when you update multiple entries, it trigger the afterUpdateMany lifecycle.
https://github.com/meilisearch/strapi-plugin-meilisearch/blob/f322bec2a5cc15ad1e7f2183ad31d49122607ef1/server/services/lifecycle/lifecycle.js#L75
This lifecycle uses
https://github.com/meilisearch/strapi-plugin-meilisearch/blob/f322bec2a5cc15ad1e7f2183ad31d49122607ef1/server/services/meilisearch/connector.js#L111 to update the entries in Meilisearch.
To ensure the entry should be present in Meilisearch, the above function uses sanitizeEntries
https://github.com/meilisearch/strapi-plugin-meilisearch/blob/f322bec2a5cc15ad1e7f2183ad31d49122607ef1/server/services/meilisearch/connector.js#L119
For some reason, these checks are done one entry at the time and if the entry should not be in Meilisearch, it is deleted. The deletion happens even if the entry was not already present in Meilisearch. This is done to avoid having to first getting the document in Meilisearch and then delete it. Problem is, the entries are deleted one by one. Thus, if you update X documents that are in draft mode for example, they are deleted one by one from Meilisearch. So, X requests are made to Meilisearch.
Now, instead of deleting them one by one, the entries that should be deleted should be deleted in one batch.
Instead of doing this:
https://github.com/meilisearch/strapi-plugin-meilisearch/blob/f322bec2a5cc15ad1e7f2183ad31d49122607ef1/server/services/meilisearch/connector.js#L126
We should use deleteDocuments.

DANGER
This endpoint will be deprecated in the near future. Consider using POST /indexes/{index_uid}/documents/delete instead .

In your link, it shows this🤔


Issues with PgBouncer on DigitalOcean - CODE: 26000 ERROR: prepared statement \"PGBOUNCER_34\" does not exist

Bug description
I use prisma 5.5.2, with pgbouncer=true in the connection string. I get the following error:
CODE: 26000 ERROR: prepared statement \"PGBOUNCER_34\" does not exist
max_prepared_statements is as default (0)
Strangely enough it used to work before with pgbouncer=true without any issues. The issue started a few hours ago. DigitalOcean is also investigating this meanwhile
How to reproduce
Using digitalocean postgres pool with prisma does not work.
Expected behavior
No response
Prisma information
N/A
Environment & setup

OS: macOS or linux both not working
Database: PostgreSQL
Node.js version: 18 LTS

Prisma Version
5.5.2

It very much sounds like max_prepared_statements is not actually set to 0. The PGBOUNCER_36 name for the prepared statement is only used by PgBouncer when max_prepared_statements is set to a non-zero value.

Indeed.
The prepared statement not existing indicates that possibly someone is executing DEALLOCATE ALL on the pooled connection. Are there also clients connected that are still using pgbouncer=true? You will have to fully remove those and then restart/reset PgBouncer so it resets cache of the prepared statements.

I am affected by the same issue.
I resized the database on DigitcalOcean and suddenly the error CODE: 26000 ERROR: prepared statement \"PGBOUNCER_34\" does not exist started to happen.
I was using Prisma 4, I upgraded to Prisma 5.5.2 and removed pgbounder=true from the connection string.
The error now happens randomly, it might work fine for ~8 hours, and then start to happened. The only immediate fix Iàve found it to terminate the connection in the Digital Ocean configuration panel, but itàs not sustainable.
I tried to call prisma.$disconnect() when the error occurs, but it doesn't seem to work.
Might it be the case that during the database resize, something changed in the configuration of the Postgres database?
Unfortunately, I don't see any way to update max_prepared_statements on my own.
I need this to be fixed ASAP, because it's affecting the customers. Any help from you that know how Prisma works, is very much appreciated, thanks!

Sounds like an issue with DigitialOcean, changing max_prepared_statements to a non-zero value by default. You should contact their support. Or possibly you can remove pgbouncer=true from the connection string and have everything work, but if they then change max_prepared_statements back to 0 you will get errors again.

Sounds like an issue with DigitialOcean, changing max_prepared_statements to a non-zero value by default. You should contact their support. Or possibly you can remove pgbouncer=true from the connection string and have everything work, but if they then change max_prepared_statements back to 0 you will get errors again.

Thanks Jelte, I already removed pgbouncer=true but the errors persist (randomly), if I add it again, the errors are always present.
I opened a ticket to DO.
I suppose max_prepared_statements=0 without pgbouncer=true is the optimal setup, isn't it?

I already removed pgbouncer=true but the errors persist (randomly)

Did you remove it from all clients/applications talking to PgBouncer, because if one still has pgbouncer=true then that poisons connections for all other clients. After you removed it everywhere you should restart pgbouncer or run RECONNECT in its admin console. To make sure that all existing server connections are removed.

I suppose max_prepared_statements=0 without pgbouncer=true is the optimal setup, isn't it?

max_prepared_statemenst >= 0 without pgbouncer=true is the fastest setup as reported by some prisma users. But it's also new, so a bit experimental. max_prepared_statements=0 with pgbouncer=true is slower, but known to be working well as this is what you've been using before.

I suppose max_prepared_statements=0 without pgbouncer=true is the optimal setup, isn't it?

@JelteF already said it, but let me restate the two configuration that currently work with Prisma and PgBouncer 1.21.0:

max_prepared_statements >= 0 + NO pgbouncer=true
max_prepared_statements=0 + pgbouncer=true

@ikoichi

I already removed pgbouncer=true but the errors persist (randomly)

This is interesting and concerning. Are you sure that no Client still connects with pgbouncer=true? This should only happen if some Client sends an DEALLOCATE ALL.

@JelteF In your experience, what is the correct way to recover PgBouncer when one gets a prepared statement \"PGBOUNCER_34\" does not exist error message, meaning that PgBouncer thinks there is a prepared statement but it does not exist any more on the connection?

@JelteF In your experience, what is the correct way to recover PgBouncer when one gets a prepared statement \"PGBOUNCER_34\" does not exist error message, meaning that PgBouncer thinks there is a prepared statement but it does not exist any more on the connection?

The server connection is fried at this point so it needs to be forcibly closed. There's two ways of doing that:

restarting pgbouncer
Running RECONNECT in pgbouncer its admin console

In case it's useful to others.
I opened a ticket to DO and they disabled prepared statements for pgBouncer.
After they made the change, I had to add again &pgBouncer=true to the connection string, otherwise I was getting the usual error.
Anyway, I'll keep monitoring the situation in the upcoming days.
Thanks all for your support.

This is so odd - I also just upgraded my DO database and ran in to the same exact problem! Thank goodness on timing - I've removed pgbouncer from my connection string and I am awaiting support to respond to my ticket to set the max_prepared_statements=0

You might be fine with pgbouncer=true removed (and the prepared statements enabled), as the reason for it existing is fixed with PgBouncer 1.21.0 @uncvrd. We will communicate that wider as soon as we have tests to confidently prove that - so please let us know about your experience.
We were just hit with this ourselves after a minor upgrade of our PostgreSQL instance, for the test setup that ensures Prisma works with PgBouncer with the PgBouncer mode. So for us removing pgbouncer=true is not an option right now, and I need to wait for support to make the suggested change of disabling the prepared statements for now.

The issue started again without me changing anything on the DB or code side.
I tried with and without pgbouncer=true but I still get prepared statement \"PGBOUNCER_2451\" does not exist.
My only option at the moment is to avoid using the connection pool at all.

I already removed pgbouncer=true but the errors persist (randomly)

Did you remove it from all clients/applications talking to PgBouncer, because if one still has pgbouncer=true then that poisons connections for all other clients. After you removed it everywhere you should restart pgbouncer or run RECONNECT in its admin console. To make sure that all existing server connections are removed.

I suppose max_prepared_statements=0 without pgbouncer=true is the optimal setup, isn't it?

max_prepared_statements >= 0 without pgbouncer=true is the fastest setup as reported by some prisma users. But it's also new, so a bit experimental. max_prepared_statements=0 with pgbouncer=true is slower, but known to be working well as this is what you've been using before.

Is it possible to run this RECONNECT command from PSQL?

The issue started again without me changing anything on the DB or code side. I tried with and without pgbouncer=true but I still get prepared statement \"PGBOUNCER_2451\" does not exist.
My only option at the moment is to avoid using the connection pool at all.

The error message indicates that the PostgreSQL server does not have a prepared statement that PgBouncer expects (so max_prepared_statements is set to a value higher than 0) and tries to use it. This can happen when you run DEALLOCATE ALL via that PgBouncer, which is the case when you use pgbouncer=true in Prisma.
If you use max_prepared_statements >0 do not pgbouncer=true anywhere with that connection string. Then restart PgBouncer to put it into a good state where it knows all the prepared statements that exist. (As soon as a Client connects again with pgbouncer=true it will fail again, or when someone manually runs DEALLOCATE ALL on that PgBouncer instance)

(As soon as a Client connects again with pgbouncer=true it will fail again, or when someone manually runs DEALLOCATE ALL on that PgBouncer instance)

For what it's worth, support for DEALLOCATE ALL was added to PgBouncer 1.22.0: https://github.com/pgbouncer/pgbouncer/releases/tag/pgbouncer_1_22_0 (PgBouncer 1.23.0 is out now)


Export/Import

What would be the best way to export all data and later import it again.
I am working on a nerves app, and would like to give my user the opportunity to make backups of the data.
I am currently using this for the backup:
CubDB.select(:db) |> :erlang.term_to_binary()
But I do not find how to re-import this.
I thought about emptying the db and then putting all data back, but there seems to be no easy way to empty the db either.
Any help would be appreciated.

Closing this issue for now, as I think that the question is answered. Feel free to comment on it if necessary.

For posterity, this is how i currently do backup/restore:
  def backup(conn, _params) do
    data =
      CubDB.select(:db)
      |> :erlang.term_to_binary()

    conn
    |> send_download({:binary, data}, filename: "backup.bin")
  end

@impl true
  def handle_event("restore", _params, socket) do
    consume_uploaded_entries(socket, :config, fn
      %{path: path}, _entry ->
        log("Creating temporary database")
        File.rm_rf("/tmp/db")
        CubDB.start_link("/tmp/db", name: :db2, auto_file_sync: true, auto_compact: true)
        log("Created")
        log("Reading config")
        txt_config = File.read!(path)
        log("Config read, parsing")

        case :erlang.binary_to_term(txt_config) do
          {:ok, config} ->
            log("Config parsed - OK")
            log("Uploading to temporary database")

            for {k, v} <- config do
              CubDB.put(:db2, k, v)
            end

            log("Upload complete,stopping temporary db")
            CubDB.stop(:db2)
            current_db = Application.get_env(:watchit, :db_path, "/data/db")
            File.rm_rf(current_db <> ".bak")
            File.rename!(current_db, current_db <> ".bak")
            log("Moved current db")
            File.rename!("/tmp/db", current_db)
            log("Move temporary")
            CubDB.stop(:db)
            log("Restarted db to get the changes, waiting")
            wait_for(:db)
            log("Db restarted")

          _ ->
            log("Config not valid, terminating restore")
            CubDB.stop(:db2)
        end
    end)

    {:noreply,  socket}
end

defp wait_for(process) do
    wait_for(nil, process)
end

defp wait_for(nil, process) do
    Process.sleep(100)

    process
    |> Process.whereis()
    |> wait_for(process)
end

defp wait_for(_, _), do: :ok