Support download model through general WebHDFS REST API

/kind feature
Describe the solution you'd like
[A clear and concise description of what you want to happen.]
We have a requirement of downloading file from our Hadoop based storage using WebHDFS REST API with TLS (has to provide TLS cert and a header with id). To make it general, TLS and headers can be optional.
User can use the following command to generate the secret:
kubectl create secret generic hdfscreds \
    --from-file=TLS_CERT=./client.crt \
    --from-file=TLS_KEY=./client.key \
    --from-literal=HDFS_NAMENODE="https://host:port" \
    --from-literal=HDFS_ROOTPATH="/" \
    --from-literal=HEADERS="{'x-my-container': 'my-container'}"

format of the secret:
apiVersion: v1
kind: Secret
metadata:
  name: hdfscreds
type: Opaque
data:
  HDFS_NAMENODE: 'http(s)://host:port'
  HDFS_ROOTPATH: xxxx # string, default: ""
  TLS_CERT: xxxx # string, default: ""
  TLS_KEY: xxxx # string, default: ""
  TLS_CA: xxxx # string, default: ""
  TLS_INSECURE_SKIP_VERIFY: # string (true|false), default: "false"
  HEADERS: xxxx # string, default: ""

To implement it in storage initializer, hdfscli is used.
simple code sample:
from requests import Session
from hdfs.client import Client

HDFS_NAMENODE="https://host:port"
HDFS_ROOTPATH="/"
HEADERS={'x-my-container': 'my-container'} # parse from string
TLS_CERT="path to TLS_CERT"
TLS_KEY="path to TLS_KEY"
TLS_CA="path to TLS_CA"
TLS_INSECURE_SKIP_VERIFY = True|False
FILE_PATH = "path to file or directory"
OUT_PATH = "path to output directory"

s = Session()
s.cert = (TLS_CERT, TLS_KEY)
# s.verify = , True, False, or CA PATH
if TLS_CA:
  s.verify = TLS_CA
if TLS_INSECURE_SKIP_VERIFY:
  s.verify = False

s.headers.update(HEADERS)

# Has to set root to none empty value otherwise it will try to GETHOMEDIRECTORY, but user don't have the permission
client = Client(url=HDFS_NAMENODE, root=HDFS_ROOTPATH, session=s)
status = client.status(FILE_PATH, strict=False)
print(status) # None of not exist

# Downlaod file or directory to output directory
client.download(FILE_PATH, OUT_PATH, n_threads=2)

The TLS_CERT and TLS_KEY as well as TLS_CA can be mounted as volume just like GCS or as a temp file if it is supported.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html
https://hdfscli.readthedocs.io/en/latest/quickstart.html#python-bindings

@lizzzcai
Thanks for making this issue, and providing an example!
I think it will be quite straight forward to support to support this use-case as well

@lizzzcai Thanks for making this issue, and providing an example! I think it will be quite straight forward to support to support this use-case as well
I just wanted to check: In your example of the Secret you have TLS_CA but this isn't used. Should this be omitted?

Hi @markwinter , thanks for your reply.
I have added TLS_CA and a new TLS_INSECURE_SKIP_VERIFY to the example.
The TLS_CA and TLS_INSECURE_SKIP_VERIFY are not used in my case. But if we are going to make it general, probably can add it as well. In my case, I don't actually use them.
The root and session are support in KerberosClient as well.
So maybe when HDFS_KEYTAB  and HDFS_PRINCIPAL are shown in the secret, then go for KerberoClient, otherwise go for the normal hdfs client.

@lizzzcai Thanks for clarifying. I'll start working on this this week. I will probably add it to my existing PR

@lizzzcai Thanks for clarifying. I'll start working on this this week. I will probably add it to my existing PR

Thanks @markwinter , that is very good news. Adding to the existing PR should be fine. Please let me know if you need any help.

Hi @markwinter , I found out that HDFS_ROOTPATH is not a hard requirement as long as you make sure your path is starting with /. And I found an issue on the client.download.
If I am going to download /path/myfolder into /mnt/models, the data will be stored under /mnt/models/myfolder, a folder is created. However, if I am trying to download /path/models to /mnt/models, no new folder will be created. The behaviour is not consistent.
Here I provide another example to download the files one by one, and remove the ROOT_PATH.
from requests import Session
from hdfs.client import Client
import os

HDFS_NAMENODE="https://host:port"
HEADERS={'x-my-container': 'my-container'} # parse from string
TLS_CERT="path to TLS_CERT"
TLS_KEY="path to TLS_KEY"
TLS_CA="path to TLS_CA"
TLS_INSECURE_SKIP_VERIFY = True|False
FILE_PATH = "path to file or directory"
OUT_PATH = "path to output directory"

s = Session()
s.cert = (TLS_CERT, TLS_KEY)
# s.verify = , True, False, or CA PATH
if TLS_CA:
  s.verify = TLS_CA
if TLS_INSECURE_SKIP_VERIFY:
  s.verify = False

s.headers.update(HEADERS)

# Has to set root to none empty value otherwise it will try to GETHOMEDIRECTORY, but user don't have the permission
client = Client(url=HDFS_NAMENODE, session=s)

# make sure it is not a relative path
if not os.path.isabs(FILE_PATH):
    FILE_PATH = os.path.join("/", FILE_PATH)

status = client.status(FILE_PATH, strict=False)
print(status) # None of not exist

for dpath, _, fnames in client.walk(FILE_PATH):
    for fname in fnames:
        file_path = os.path.join(dpath, fname)
        relative_path = os.path.relpath(file_path, FILE_PATH)
        save_path = os.path.join(OUT_PATH, relative_path)
        # make sure save path exist
        if not os.path.exists(os.path.dirname(save_path)):
            os.makedirs(os.path.dirname(save_path), exist_ok=True)
        print(file_path, save_path)
        # download file
        client.download(file_path, save_path, overwrite=False, n_threads=1)

@lizzzcai
Thanks. I noticed the same issue before as well. Below is how I currently have it implemented.
If the user gives a hdfs file, it downloads just the file into /mnt/models. If the user gives a hdfs directory, then
it lists that directory and downloads everything inside to /mnt/models
I think this will do the same as the code you gave.
client = KerberosClient(namenode)

# Check path exists
# Raises HdfsError when path does not exist
client.status(path)

try:
    files = client.list(path)
    for f in files:
        client.download(f"{path}/{f}", out_dir, n_threads=2)
except HdfsError:
    # client.list raises exception when path is a file
    client.download(path, out_dir, n_threads=2)


Executing app.prepare() only once when exporting app instead of running a server (express)

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior
My app runs an infinite loop of webpack compilation, every action is therefore hyper slow.
Context
I'm running a Next.js app on top of Express, which is itself on top of serverless-offline, which is used to simulate the AWS lambda behavior.
Express is used by aws-serverless-express, which is a bridge between express and the Serverless framework. I therefore don't run an instance of express myself, but rather just configure the app and export it, as a module. This module is then used internally of aws-serverless-express to run the express server.
In this situation, I don't see how I can use app.prepare, which is async, because if I run it inside my lambda then it gets called at every call, including the HMR heartbeats.

App.prepare() seems to be only necessary for develop mode (eg. HMR etc all), atleast with <=5.0.0.
So I avoided that problem in lambda with this:
#lambda.js
const serverless = require("serverless-http");

process.env.IN_LAMBDA = true;
process.env.NODE_ENV = "production";

...

const appServer = require("./server");

const handler = serverless(appServer);

exports.handler = (evt, ctx, callback) => handler(evt, ctx, callback);

#server.js
const express = require("express");
const next = require("next");
const port = parseInt(process.env.PORT, 10) || 3000;
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

function createServer() {
    const server = express();
    server.get("*", (req, res) => handle(req, res));
    return server;
}

if (process.env.IN_LAMBDA) {
    module.exports = createServer();
} else {
    app.prepare().then(() => {
        const server = createServer();
        server.listen(port);
    });
}

So app.prepare() is not called at all when running app in lambda.
Full source code here: https://github.com/TomiTakussaari/serverless-nextjs

Actually, my issue is somehow reversed @TomiTakussaari
My app works fine in production, but is "failing" in development. (local machine)
I don't run app.prepare either on AWS, using a similar trick to yours ;)
But I don't run app.prepare in dev mode either, because if I do then the app becomes completely unstable and keeps recompiling everything. I don't know what's the cause of this neither how to track/debug it.
I therefore have 2 servers running, one using Next directly, and another one using express. But the express one doesn't run app.prepare and doesn't get HMR (which is sad)
https://github.com/Vadorequest/serverless-with-next

Ah I see.
At first I also attempted to use serverless-offline for dev mode too, but because serverless-offline seems to recreate lambda instance for every request (similar to how AWS Lambda could work in worst case), it would also start webpack process for every request, because app.prepare() is called for every request.
I could not see easy way out of this,  so decided not to use serverless-offline in development mode, but just start my own custom server.js (expressjs) which calls app.prepare().

Yeah, that's exactly what I'm facing.
I think I need to split both, one part with Next + express for dev/local environment and one part with serverless-offline + bundle Next, for local testing
Or, get rid of serverless-offline, which wouldn't be a big issue for me since I only have one lambda in that case.


[RFR] Exclude sed pattern in image (or url)

Fix #17
TODO

[x] Implement a test
[x] Fix the regex

Fix #17


PHP Warning:  require_once(/var/www/html/Arb/ccxt/php/BaseError.php): failed to open stream: No such file or directory in /var/www/html/Arb/ccxt/ccxt.php on line 59

PHP Warning:  require_once(/var/www/html/Arb/ccxt/php/BaseError.php): failed to open stream: No such file or directory in /var/www/html/Arb/ccxt/ccxt.php on line 59
I see this error. I think BaseError page is missing

Hi thank you very much for reporting.
The base folder (/ ccxt / php / base /) with the related files was missing.
Now it is OK


[terraform] secrets containing json break terraform

Any org or project secret containing json will break terraform.
We should probably base64 encode all secrets to avoid this.

Fix in #95


Search buffer by name does not work

Reproduce:

Open several files in neovim (with or without GUI, such as neovim-qt)
Run lua require("fzf-lua").buffers() — Buffers window shown properly
Start enter some buffer name — Buffers window is empty

Environment:

nvim version:
NVIM v0.10.0-dev-2581+gd5488633f
Build type: RelWithDebInfo
LuaJIT 2.1.1710088188
Run "nvim -V1 -v" for more info
fzf-lua version: 9a414ab6c
Buffers section in config file:

    buffers = {
      prompt = 'Buffers❯ ',
      file_icons = true,
      color_icons = true,
      sort_lastused = false,
      winopts = { preview = { vertical = 'up:70%' } },
    },

What is your fzf version?
Does this work :FzfLua buffers _fzf_nth_devicons=false?
I’m pretty sure the new --nth addition from #1080 is the cause I’m just not sure why it doesn’t work for you.

Also,  what about  files? Does it work as expected? Can you try searching for a file name that starts with some characters with ^… - does that work?
How about git_status/oldfiles?
Is there any chance you have a special mapping for buffers that hides the [bufnr] using --nth?

Another possible cause is that you modified fzf-lua’s nbsp in setup?

@damanis, use https://github.com/ibhagwan/fzf-lua/commit/ff21680ddfd2ba434ea7061b9042f7e18966597d
It disables the buffer icon exclusion as I’m not sure it makes sense in case someone wants to search by bufnr, should solve your issue.
Let me know if other files pickers work as expected?

What is your fzf version?
Does this work :FzfLua buffers _fzf_nth_devicons=false?
I’m pretty sure the new --nth addition from #1080 is the cause I’m just not sure why it doesn’t work for you.

fzf version: 0.46.1 (3c0a630)
Provided command — same behavior.

Another possible cause is that you modified fzf-lua’s nbsp in setup?

nbsp isn't touched in my config.

Also, what about files? Does it work as expected? Can you try searching for a file name that starts with some characters with ^… - does that work?
I created file ^qweqwe. It shown in Files, but if try search ^q, it isn't found.

In this version search in Buffers works.
In Files and LiveGrep I don't see problems.

I created file ^qweqwe. It shown in Files, but if try search ^q, it isn't found.

Do you wish to debug this further?

If you want.
I don't use ^ in file names and in Files and Buffer commands (fuzzy is prefer).

Let’s see why the field’s don’t match in your setup, can you run the below and try to change the nth arg to different numbers (1-5) and let me know / post the results?
local fzf = require("fzf-lua")
fzf.setup({
  files = {
    fzf_opts = {
      ["--delimiter"] = string.format("[:%s]", fzf.utils.nbsp),
      ["--wirh-nth"] = "-1..",
   }
  },
})

What the above does is split the string using fzf-lua’s nbsp, the with-nth flag is telling fzf to display only the fields marching the spec, so -1.. displays only from the last field, 2.. displays the 2nd field onwards, what I’m looking for is which number displays only the file names for you without icons (technically that number set as nth would enable searching for ^).

Let's clarify what to check: files with ^ in name or regex search in Files with ^?

Let's clarify what to check: files with ^ in name or regex search in Files with ^?

You don't need to check anything, with --with-nth the non matching fields with disappear (to spec) , for example, in my setup running, so running :lua require("fzf-lua").files({fzf_opts={["--with-nth"]="-1.."}}) removes all the icons:

--nth tells fzf on what fields to fuzzy match, --with-nth tells fzf what fields to display, I asked to test with --with-nth so we can find out why your delimiter/nbsp combo fails to split the string by the right fields.

Btw, you don't even need to run setup, copy paste the same command I used above and run in in the cmdline with different args:
:lua require("fzf-lua").files({fzf_opts={["--with-nth"]="-1.."}})
:lua require("fzf-lua").files({fzf_opts={["--with-nth"]="2.."}})
:lua require("fzf-lua").files({fzf_opts={["--with-nth"]="3.."}})

I put your config instead of mine.
-1 and 2 looks same as on your screenshot. With 3 files name are not seen.
With my config Files command without options looks like -1 and 2.
    files = {
      cmd = 'fd .',
      fd_opts           = "--color=never --type f --hidden --follow --exclude .git --exclude CVS --strip-cwd-prefix",
      file_icons        = false,         -- show file icons?
      git_icons        = false,         -- show file icons?
    },

I put your config instead of mine.
-1 and 2 look same as on your screenshot. With 3 files name are not seen.

That's how it should be, that means it's working as expected, the string is split by the invisible nbsp right before the filename and therefore searching for ^file should work, so now I'm confused even more about this:

I created file ^qweqwe. It shown in Files, but if try search ^q, it isn't found.

Did you create the file with ^ at the start? If so that would be our "problem". ^foo in fzf is similar to regex, it means search for a file that start with foo, you didn't need to create a new file, just search for a file that starts with something, for example if I want to search for all paths starting with lua\ I would search for ^lua:

Given our testing I'm assuming this works and we can close this issue, sorry for the confusion :-)

No problem. Fine plugins, I'm happy to help.

Did you create the file with ^ at the start?
Yes, I tried.
Just regex with ^ works properly.

No problem. Fine plugin, I'm happy to help.

Did you create the file with ^ at the start?

Yes, I tried. Just regex with ^ works properly.

Perfect, we can close this then.
Ty for the help!


IAR compiler issues

There are some compile error for IAR
__STATIC_FORCEINLINE void arm_memcpy_s8(int8_t *__RESTRICT dst, const int8_t *__RESTRICT src, uint32_t block_size)
                                                             ^
"Include/arm_nnsupportfunctions.h",953  Error[Pe018]:
          expected a ")"

  __STATIC_FORCEINLINE int32x4_t arm_doubling_high_mult_mve(const int32x4_t m1, const int32_t m2)
                       ^
"Include/arm_nnsupportfunctions.h",990  Error[Pe020]:
          identifier "int32x4_t" is undefined

Fixed by https://github.com/ARM-software/CMSIS-NN/pull/64


Migrate flat, flat-square, plastic and social to use XmlElement

Closes #6535
This PR applies the work we started in https://github.com/badges/shields/pull/5754 to the other 4 styles. This fully delegates the responsibility for XML escaping and formatting/minification to the XmlElement class making it easier to "fall into the pit of success" when it comes to escaping.
One thing to note in review is I've been careful to replicate the existing behaviour such that the outputs exactly match the existing outputs without changing the snapshots at all. This should give us a high level of confidence that these changes don't make any functional changes to the XML output. You can also use http://<IP_ADDRESS>:3000/dev/styles/ for a visual side-by-side visual comparison.
I've attempted to rebase the history into something vaguely sensible to try and make the review easier :crossed_fingers:

Messages

:book:

Thanks for contributing to our documentation. We :heart: our documentarians!

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against f9820392e4375631e0cfe94f50aff0b6a70e70ff

Haven't been able to carve out enough time yet to start going through this in detail but hoping to do so later this week


Pythonizing

This PR makes some sweeping changes to use more DRY principles and overall make the app more "pythonic". I also think it makes certain steps easier to follow and cleans up some unnecessary code that was probably left over from testing.
Also applied some linting to make files more consistent in style and easier to read. And dropped "PDX" from some of the titles and all, as it can certainly be used for cell lines and such as well.
Take a look and test it out. I don't believe I broke anything, but I have surprised myself before.
There may be a few other things that could be changed or improved, but it seems quite usable.
In terms of how I'll add this to strprofiler, I'll probably just pull it over into its own module and add a subcommand like "strprofiler app" to use run_app on it. Hopefully that just works and doesn't require too much fiddling. Still may functionize the app itself so that a custom database can be fed into the function.

First pass this is awesome. You added a lot of flexibility and standardization that was on my list to try to address. I will look over everything, and merge this in.


Update Composer dependencies (2022-06-27-00-12)

Visual regression test passed!
View the visual regression test report


unit tests for implementation of tpAdd should be unified

Currently, we have three executable operators that represent different implementations of tpAdd (namely, ExecOpBindJoinBRTPF, ExecOpIndexNestedLoopsJoinSPARQL, and ExecOpIndexNestedLoopsJoinTPF), and for each of them we have a corresponding class with unit tests. The actual tests in these three classes are the same and, thus, there is a lot of duplicate code. This duplicated code should be consolidated into a single abstract class that, then, can serve as a base class for each of the three actual test classes.

This issue has been addressed by commit https://github.com/LiUSemWeb/HeFQUIN/commit/0deb4f90d1b981f5991369a149bd209df08428f0


Make soci_error nothrow copy constructible

According to the CERT C++ Coding Standard rule ERR60-CPP. Exception objects must be nothrow copy constructible, SOCI's base exception soci_error should have noexcept copy constructors.
The exception classes derived from soci_error don't have copy constructors, i.e. they adhere to this rule automatically.

I switched to the copy-and-swap implementation based on OOP54-CPP. Gracefully handle self-copy assignment. Alternatively, I think that we should at least check for self-assignment in the copy constructor.
I don't have a strong opinion about it, though. So if you think we should keep the old copy logic, I'll happily revert that part.

Sure thing, let's do &e == this then.
I don't have access to my work station until monday, so you'll have to wait a bit :)


Adaptive layout not showing song list

https://user-images.githubusercontent.com/42654595/167087981-5a86af94-6ee4-40a7-8f14-6c6dc41b62a8.mp4

Library, Now Playing, Saved tracks work perfectly
All playlists and other playlists have issue with adaptive layout

I think somewhere around this commit introduced this issue (along with #520 #545).
I've been checking the logic involving navigation and sidebar but it's a bit on the complicate side tho.

I did a test run and now the song list is indeed showing up;
Screencast from 2023-02-17 14-33-20.webm
The navigation is still a bit messy; it's pushing library first then the playlist.

might be worth exploring flaps indeed, but I'm not sure how it handles split headerbars?
so I'll merge that branch soon
I still have the issue with search, but I can't see whats wrong with it for now

i think with flaps u cannot have split headerbars tho.


Investigate turning this cookbook into a hybrid-library cookbook

The cookbook setup is very opinionated and requires forking to edit the config

Agreed. "/srv" is not an ideal location for the kickstart files, and the contents of the kickstart file template  are incompatible with RHEL 6 or RHEL 7.


Feature request: implement Gimphash calculation

https://github.com/NextronSystems/gimphash

I've been meaning to evaluate this computation for a while now. It's something I'd like to include for sure. Though some concerns I need to vet personally first before I implement this:

How stable is it per compilation of the same source/compiler, what about including changes to source, what breaks it?
How stable is it across go versions? The runtime has evolved significantly over time, should there be a cutoff version, a generic version, or a different computation per version?
Do other rules need to be included? It's not clear to me if ignoring internal/ is the best as many go applications include real application logic under internal paths. Similarly with vendor, it may be useful to include that, what are the tradeoffs there?

Are the standard library exclusions listed complete, go. and type. intuitively seem to make sense off hand, are there others? Have they changed over time?

I do plan on looking into these, if you have any insight it would help move this along.


Fix data table memory leak by ensuring a downgrade. Fixes #1801.

@addyosmani PTAL!

so just by adding the method it fixes the node leak?!

@samccone Yea, because currently the component handler stores upgraded items in createdComponents_. Without this, there is no way to remove it from that. Yes, a method for this should get added for the cases in which there isn't a downgrade provided.
I have some testing to do here in a clean environment (working on) to verify that my original tests were correct and we shouldn't be doing empty downgrade methods (mostly due to possible other leaks depending on what developers are intending on doing. Like detached event listeners sticking around.)

crazy, this brings me to my next question... why does the method need to exist?

Without this, there is no way to remove it from tha

^^ I guess I do not follow :P

I built the downgrader specifically to cleanup a component for removal by the user,  which is why right now it only handles removing  event listeners and not any dynamically created nodes. To this end, I didn't want to tell developers something was downgraded when it never was. So, no downgrade is  done, therefore removal and everything else, unless a downgrade method is provided. The intent is, if it doesn't downgrade, you may need to look over things before just destroying things (and then leaving listeners floating around in memory attached to nothing.) I never worked on the other method until now for removing an object from  createdComponents_ without downgrading.
The main idea is, if a component isn't downgraded you need to do some looking around to make sure it is safe to force-remove. Problem: Force removal has yet to be built (coming soon.)


[QUESTION] Issue with permissions on CSI powerscale mounts in openshift 4.14

How can the Team help you today?
*We're having an issue with CSI powerscale.
In the values file, we define the permissions (with the isiVolumePathPermissions parameter inside a values.yml file in our ansible playbook) on a volume mountpoint as 0777.
However, when it mounts inside the pod, it mounts with 0770 and this is causing issues for us.
Has anyone else encountered this issue? Is setting the permissions in this way not supported?
We are running openshift 4.14
currently v2.10 is our CSI Powerscale version

This issue has been fixed. We discovered on the Powerscale side the parent folder the CSI driver was creating folders in had an extended ACL with inheritance set which was taking precedence over the permission the CSI driver was trying to set on the folder via the isiVolumePathPermissions parameter. Once we removed the extended ACL and added permission for the user the CSI driver is running under to be able to create folders this resolved our issue.
chmod -b 770 [folder] chmod +a user [csiUser] allow dir_gen_read,dir_gen_write,dir_gen_execute,std_write_dac,delete_child [folder]

Closing based on last comment. Thanks for the info.


Very small typo in docs

https://tableau.github.io/extensions-api/docs/interfaces/analyticsobject.html
"An anlytics object is abstract class representing an analytics object in a worksheet. Currently, this is limitted to trend line, forecast, and cluster objects."

Thanks @geordielad, good catch.
I've fixed this in one of our development branches so this will be fixed on the website shortly.


Use myst-parser and Update Edit Link

2 commits (Use myst-parser instead of recommonmark, install Sphinx after myst-parser to use latest Sphinx) and update edit link
Commit 1: Update to use myst-parser

 myst-parser allows for the rendering of markdown tables
With the use of myST, had to reorder packages in requirements as  Sphinx is on 3.1.x and myST is currently pinned to a 2.4.4 version. although, upgrade to 3.1 is in the roadmap
During pip install of requirements, will get myst-parser 0.9.1 requires sphinx<3,>=2, but you'll have sphinx 3.1.2 which is incompatible. but so far okay with the actual build html step.

Commit 2: Update Edit Link

Needed to update Edit on Github link - was appending .txt when we changed to use .rst

https://lit-pod-8xfml98yj.vercel.app/api.html still seems to work great and tables render properly.
One other question: it appears the headings do have an anchor attached (i.e. I can link to getGroupResourceAccess specifically: https://lit-pod-8xfml98yj.vercel.app/api/modules/acl_group.html#getgroupresourceaccess) - do you know what the syntax would be to link to that from other pages? I thought I saw something with a colon in between, but that didn't seem to work as far as I could see.

👍
Regarding the question about linking, to link from the rst docs to markdown docs, I think we'd have to use the :apidocs: link to point to https://docs.inrupt.com/client-libraries/solid-client-js/api/modules%s  for now.
It's because in restructured text, you can put reference links above headings a
`.. _linktargetA:
getPublicAccess
`
and use :ref:linktargetA to link.  The markdown files, at least what's being generated with Typedoc, don't put anything before these section headings.  We may be able to process the markdown files a bit using myST syntax extensions - but will need to investigate.
Thanks for the tip on commit messages.  I think it's because I'm used to having a specific docs ticket (at my previous, we have a Jira/github integration where if you prefix with the DOCS ticket DOCS-12345, and a commit is done on github, it linked that commit to the JIRA ticket).


Update README, ie the tin

Mailhog lacks the "description" of what it does (what it says on the tin)
Please add

MailHog is for developers wanting to test send SMTP mailing code
Without accidentally emailing everyone on the lists..
Your can send email to MailHog and and will react like an smtp
But u can also readmails thru web interface.. useful for designers..
Its inspired and a rip off mailcatcher, a python service..

MailHog runs a super simple SMTP server which catches any message sent to it to display in a web interface. Run MailHog , set your favourite app to deliver to smtp://<IP_ADDRESS>:1025 instead of your default SMTP server, then check out http://<IP_ADDRESS>:1080 to see the mail that's arrived so far.
Just the way I see it..

Gonna try an embed..
http://revel-docs.daffodil.uk.com/manual/index.html
and maihog into this project
https://github.com/daffodil/factory-planner

Thanks @pedromorgan - as it happens, I updated the readme yesterday to add a bit more overview, but it's not as detailed as yours! Any chance you could send it as a pull request if you have time? No prob either way, I'll have a look asap.

Cut and Paste this.. Stuff the pull request..
MailHog runs a super simple SMTP server which catches any messages sent to it to display in a web interface. Start MailHog, set the app to deliver to smtp://<IP_ADDRESS>:1025, instead of the "live" SMTP server; then browse at http://<IP_ADDRESS>:1080 to see the mail that's send/arrived so far.
MailHog is a test smtp server

MailHog is for developers wanting to test sending SMTP mailing code
Without accidentally emailing everyone on the lists
Your can send emails, attaches etc to MailHog and and will react like an smtp, fake errors and all
View the emails with a web interface, and headers etc
Its inspired and a rip off Mailcatcher, a python service.
Written in golang, under active dev and intended as a local testing service
Test php, python et all code against le beest..
See docker, install and run for fun


[ISSUE #775]⚡Optimize test_start_and_shutdown test case✅

Which Issue(s) This PR Fixes(Closes)

Fixes #775
Brief Description

How Did You Test This Change?

🚀Thanks for your contribution🎉. CodeRabbit(AI) will review your code first🔥


Improve CLI error message on missing project dependencies

Summary
Trying to run gridsome develop without the project dependencies installed results in a rather misleading error message Unknown command develop. It should (additionally) give the user a hint at missing project dependencies.
Basic example
Maybe extent the error message:
gridsome develop in project with no dependencies -> Unknown command develop. Please use 'yarn install' or 'npm install' to install project dependencies first. or something along those lines
Motivation
Less confusion for folks who forgot to install the project dependencies, e.g. #280
A PR to actually add that step to the docs: https://github.com/gridsome/gridsome.org/pull/106

As noted in https://github.com/gridsome/gridsome.org/pull/106 the dependencies should be installed by default. I still think that it is a realistic scenario that someone might delete that folder. I do believe that a better error message would still be beneficial.

Or consider the scenario that someone checks out an existing project from an own repo. The node_modules folder is not committed in that case. One might potentially assume that gridsome develop would also install the dependencies if not present.


For the week starting Monday May 20th it seems the API is down.

Have not been able to get a good response this week.  Sites looks to be down.

Down for me as well.

Still down for me

Still down here but yes thank you for the Free API, very much appreciated.

New domain, just found in docs: https://bored-api.appbrewery.com/random

This domain seems to work: https://bored.api.lewagon.com/

@PrincePazol this is for internal use as temporary backup for out Students & Teaching staff though, it can be pulled at anytime as soon as the original domain comes back alive. Thanks for your understanding 🙏


[BUG] 0.1.12 chart doesn't run tor-controller-manager

Describe the bug

chart missing config/deployment for tor-controller-manager

To Reproduce

deployment calls /manager and can't find the binary ...

6m20s       Warning   Failed                           pod/tor-controller-569c85ccd4-vj5td                  Error: failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/manager": stat /manager: no such file or directory: unknown

can edit the deployment to point to /app/manager and it works, but then it  errors out because it cannot find controller_manager_config.yaml

Expected behavior
There are some resources deployed in hack/install.yaml that maybe required and not covered in the chart.
Deploying via the hack/install.yaml manifest throws errors that one of the resources is too large.
Additional information
tested in k3s under amd64 & arm64
System (please complete the following information):

Platform: amd64, arm64
Versions: k3s  (arm64) 1.24.15 & k3s (amd64) 1.25.11
Single-Node clusters, amd64 is Rocky Linux VM, arm64 is rpi4 with Ubuntu 20.04

Additional context
I had the previous chart (01.11) running on the rpi4 (arm64) for quite a while.

Hi @flrichar, thanks for the heads up! This is due to the size of the onionbalancedservices CRD as we import the core v1 pod definition, it carries all the descriptions with it and the resource ends up being too large for the client-side apply. I resolved this in the past by removing the descriptions so that we minimize the size; I'm going to fix the generator/makefile so that this gets done automatically; probably a mock installation might help to spot this in the future.
In the mean time, you can manually install with:
kubectl apply -f hack/install.yaml --server-side=true --force-conflicts

Now I've spotted the /manager issue, working on it

Hi @flrichar, I've released the patch under a new chart version0.1.13 https://github.com/bugfest/tor-controller/releases/tag/tor-controller-0.1.13 - please check it and let me know if it works for you too

Thanks for the reply, haven't tried it yet, regarding the descriptions, kinda funny one should not get penalized for good documentation!

Success! It works! Thank you for the quick resonse. 0.1.13 chart running perfectly on both systems.

Thanks for checking @flrichar!


Incorrect virtualenv activate script executed

Type: Bug

Behaviour
Expected vs. Actual
When opening a new terminal window (Nushell) the incorrect activate script is being executed for my virtualenvironment:
& C:/Users/WayA/AppData/Local/pypoetry/Cache/virtualenvs/cloud-billing-VTFyPfP7-py3.11/Scripts/Activate.ps1
Rather than:
overlay use C:/Users/WayA/AppData/Local/pypoetry/Cache/virtualenvs/cloud-billing-VTFyPfP7-py3.11/Scripts/activate.nu
Steps to reproduce:

Open a new nushell terminal window

Diagnostic data

Python version (& distribution if applicable, e.g. Anaconda): 3.11.0
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): Poetry
Value of the python.languageServer setting: Default

Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

XXX

User Settings

venvPath: "<placeholder>"

venvFolders: "<placeholder>"

languageServer: "Pylance"

linting
• pylamaArgs: "<placeholder>"
• pylintArgs: "<placeholder>"

formatting
• provider: "none"

testing
• pytestEnabled: true

Extension version: 2023.16.0
VS Code version: Code 1.82.2 (abd2f3db4bdb28f9e95536dfa84d8479f1eb312d, 2023-09-14T05:55:25.390Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

Item
Value

CPUs
11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz (8 x 2611)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
31.69GB (14.92GB free)

Process Argv

Screen Reader
no

VM
0%

I will also add that this has been working up until the most recent VSCode update, although it does seem that the extension was also updated yesterday. Will try to find any more relevant changes which may have caused this bug.

Rolling back to  v2023.14.0 doesn't fix the issue so I'm going to assume this is some kind've bug in vscode (Perhaps they've changed some kind've API)

Found some additional info in the output which is seeming to suggest that my current shell is commandPrompt:
2023-09-20 11:16:35.437 [info] > ~/AppData/Local/pypoetry/Cache/virtualenvs/cloud-billing-VTFyPfP7-py3.11/Scripts/activate.bat && echo 'e8b39361-0157-4923-80e1-22d70d46dee6' && python ~/.vscode/extensions/ms-python.python-2023.16.0/pythonFiles/printEnvVariables.py
2023-09-20 11:16:35.437 [info] shell: commandPrompt

Okay I think I've figured it out.
The following line is looking for the shell being named nu.  https://github.com/microsoft/vscode-python/blob/main/src/client/common/terminal/shellDetectors/baseShellDetector.ts#L33
Mine was called Nushell (via the official nushell extension):

Changing to Nu as the default correctly activates the overlay

@alex-way Thanks for the looking into it.

The following line is looking for the shell being named nu. https://github.com/microsoft/vscode-python/blob/main/src/client/common/terminal/shellDetectors/baseShellDetector.ts#L33

The code you pointed to looks into the path of the shell, not the name. It checks whether that path of shells ends with "nu" or "NU" or any case insensitive comparision.
In case of Nushell, the path of the shell reported to us by vscode.env.shell is Powershell, which seems like a bug on either VS Code or Nushell.
In case of Nu, the path to shell is actually the path to nu.exe, so it works out fine.

In case of Nu, the path to shell is actually the path to nu.exe, so it works out fine.

https://github.com/microsoft/vscode-python/blob/491c2c8af29916136e0b6540b5d934bf448a51e3/src/client/common/terminal/shellDetectors/baseShellDetector.ts#L66
@karrtikr Could we use a case-insensitive replace?
const basePath = shellPath.replace(/\.exe$/i, '');

Since I found my Nushell profile is giving a C:\Program Files\nu\bin\nu.EXE executable path, in which the .EXE extension cannot be removed and the IS_NUSHELL test does not pass.

Sure, if you send up a PR for it we would be happy to take it.


DBZ-5874 Making sure trace message gets logged

With the separate forEach loop used for logging before, we'll only get to see the columns in the log if they all could be created. If something goes wrong before and an exception is raised, no information will be logged at all, also for those columns which could be created before.
https://issues.redhat.com/browse/DBZ-5874

@gunnarmorling Applied, thanks


Wrong relatedTarget on mouseout event (to close tooltip except if mouseout towards tooltip)

How to reproduce

Leaflet version I'm using: 1.1.0
Browser (with version) I'm using: IE 11 or Firefox 54
OS/Platform (with version) I'm using: Windows 7

Open the fiddles below and hover over the markers while checking the console. The fiddle with Leaflet 0.5.1 works as expected but the one with Leaflet 1.1.0 doesn't,
What behaviour I'm expecting and which behaviour I'm seeing
The relatedTarget should be the popup but it's another element (the map container).
Minimal example reproducing the issue
This fiddle uses Leaflet 0.5.1 and works as expected (check the console while hovering over markers or simply notice that the popups are not closed when going with the mouse from the marker to the popup): http://jsfiddle.net/3JbNY/106/
This one is exactly the same as the one above but it uses Leaflet 1.1.0 and as you can see, it doesn't work anymore; and if you check the console, the relatedTarget element is not the popup on 90% of the times (very rarely it actually is the popup): http://jsfiddle.net/3JbNY/105/
What is the correct behavior here? Why was that changed? Shouldn't the relatedTarget on mouseout always be the element you're exiting into?
PS.: I asked a question on SO about this, check it out if you want more information or if you know a solution that doesn't rely on relatedTarget. https://stackoverflow.com/questions/45755984/why-doesnt-leaflet-provide-the-correct-relatedtarget-element-on-mouseover-event

Ok, so since 0.5.1 is quite an old version I decided to go check which one is the latest working version for this. It still behaves correctly in the v.1.0.0-rc.1 version but starts breaking in the v.1.0.0-rc.2 version.
I'll try to find what caused the change between those two versions.
Does anyone agree that this behavior is odd? I can help find and/or fix the problem but if the maintainers think that this is not a bug then I can move on to trying to find another solution.

So, I think this is caused by this change: #4599
On version 1.1.0, I changed the value of pointer-events to auto on the CSS class leaflet-tooltip (not the pane) and it works as I expected.
Now remains the question of what should be the desired outcome here.

Hi, thanks for looking into this and providing a detailed description! As you say, #4599 is probably the key here: for most applications, this change, making the popup tip pass through pointer events is an improvement, but in your specific use case it becomes problematic since it actually looks like the event is on the map, not on the popup's tip.
Unless you have a better suggestion, I would say that overriding pointer-events on leaflet-tooltip like you've already done is probably the best solution here. Most apps are not concerned with pointer events on the popup's tip.

Glad to help!
For now, I'll just override the CSS on my app. I thought I'd point it out for discussion because when I was googling how to keep the tooltip/popup open when hovering over it, I saw some people trying to do the same, so it may be a common feature, and the fiddle I posted is a nice way to accomplish it.
But anyway, I'm glad it's easy to fix it by just overriding a CSS class. :)

Hi @robertomlsoares,
Nice finding!
For the record, your use case is to auto close a popup (or a tooltip) on marker "mouseout" event, except when the mouseout is towards the associated popup / tooltip.
Therefore the new Leaflet behaviour (introduced by #4599) makes your initial solution fail, because mouseout event no longer supplies toElement or relatedTarget (hence your issue title).
Here is an updated JSFiddle that includes the solution to override pointer-events CSS:
http://jsfiddle.net/3JbNY/107/

it may be a common feature

but:

Most apps are not concerned with pointer events on the popup's tip.

Sounds to me like a rationale for making it a plugin?

Hello, @ghybs,
Yeah, you described the problem really well. Thanks for the fiddle, btw!
I agree that it's a good idea for a plugin, I might try to make one later when I have some more time, but for now I'm just glad the issue is out there in the open and hopefully people will stumble upon this later, it's quite an easy solution even without a plugin (it was just hard to find 🙂).

Closed in favor of #4596.


Clicking the minimise button does not minimise the window

When I click the minimize button, the app still takes up the entire screen.

Don't know how to fix,


dbeaver/pro#1256 use complex target name in export query if query has…

… joins; add the ability to change table name for the SQL export

Qriteries:

[x] The table name does not change in the export statement if the "Target table name" property is empty
[x] The table name changes in the export statement if the "Target table name" property has any string
[x] The "Target table name" property has a description
[x] The target file name with {table} parameter will have a merged name (ask me)

Verified


[T4A3][T09-B2] Goh Quan Yang Daryl

@darylgqy  Some comments added. Please close the PR after reading comments.


Just updated the readme file with new apis

Tanks for this second PR.
I have changed a little bit the API, to

Ooops sorry I have inconveniently closed your PR.
I merge it, but I have some changes to add, because the icon is not sent by default.

Oh ok!


I get an error when running the code estimate.py

Traceback (most recent call last):
  File "api-tracing-app-management-deeprest/resource-estimation/estimate.py", line 35, in <module>
    input_size=step_size).fit_and_estimate(X, y[:, :, [idx]]))
IndexError: too many indices for array: array is 1-dimensional, but 3 were indexed

My python version is Python 3.8.8 and Numpy is 1.20.1

well, the dataset in this repo is too small and the lens of array (y) is zero

well, the dataset in this repo(https://github.com/IBM/api-tracing-app-management/blob/deeprest/resource-estimation/input.pkl) is too small and the lens of array (y) is zero

do you know how to get the input data?


fix docker push

Signed-off-by: Aylei<EMAIL_ADDRESS>What type of PR is this?

[ ] API-change
[x] BUG
[ ] Improvement
[ ] Documentation
[ ] Feature
[ ] Test and CI
[ ] Code Refactoring

Which issue(s) this PR fixes:
Fix the update workflow (docker push)
What this PR does / why we need it:
Not Available
Special notes for your reviewer:
Not Available
Additional documentation (e.g. design docs, usage docs, etc.):
Not Available

@wanglei4687 PTAL


[Bug]: Explorer cannot render activities in Beacons and All activities  only averages

What happened?
In the
explorer shows an empty activity list in Beacons and  All activities. Not consistent with the actual status and the AVG stats. (only rewards is immune to the issue)
In particular looks related to the returned json API call
https://helium-api.stakejoy.com/v1/hotspots/11rXcumfewUaskPacjgNjSQuSNBeCqyUCrwttso5sBG4PiRLGz1/activity?filter_types=
if filter_types=                is present (empty or equal to any value except rewards)
the returned value is  {"data":[]}
otherwise a list is returned BUT on the last page the "cursor" label that should be available but set to null is not even present in the answer.
URL
https://explorer.helium.com/hotspots/11rXcumfewUaskPacjgNjSQuSNBeCqyUCrwttso5sBG4PiRLGz1
What browsers are you seeing the problem on?
Chrome, Firefox, Opera, Microsoft Edge
Do you see the issue on Mobile or Desktop?
Mobile, Desktop
Relevant log output
https://helium-api.stakejoy.com/v1/hotspots/11rXcumfewUaskPacjgNjSQuSNBeCqyUCrwttso5sBG4PiRLGz1/activity?filter_types=

related to ALL ACTIVITIES tab

returns
{"data":[]}

today its fixed? at least i can now finally see my beacons and activity!

i guess not up to the moment it will be set as "done" in the upcoming sprints...as today the visualization is still  affected

I see an empty "All activity" list on this hotspot:
https://explorer.helium.com/hotspots/1129JfVUtTJYSsn5kSC3JnRuu2tx1QPi7g8JJJ4KqbtTxRScrR5d/activity
I don't know if os the same bug. If you change to another tab, it works, but not "All Activity"

I see your full activity list. you probably have a browser cache issue. try another browser or incognito mode. closing as this isn't a bug.

It was fixed a few weeks ago, no issues since. On Feb 2, 2022 18:43, Coco Tang @.***> wrote:
I see your full activity list. you probably have a browser cache issue. try another browser or incognito mode. closing as this isn't a bug.
—Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Issue Calling Get-MgUser and Get-MgGroup

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
When I Connect-MgGraph, and try to use Get-MgUser or Get-MgGroup, I get the same error:
ParentContainsErrorRecordException: C:\Program Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1:15863
Exception calling "GetSteppablePipeline" with "1" argument(s): "The expression after '&' in a pipeline element produced an object that was not valid. It must result in a command name, a script block, or a CommandInfo object."
Downgraded to 7.3.9 And Get-MgUser and Get-MgGroup work as expected.
Expected behavior
PS C:\Program Files\PowerShell\7> Get-MgUser

DisplayName            Id                                   Mail                                 UserPrincipalName
-----------            --                                   ----                                 -----------------

Actual behavior
ParentContainsErrorRecordException: C:\Program Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1:15863
 Line |
15863 |          $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvoc …
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | Exception calling "GetSteppablePipeline" with "1" argument(s): "The expression after '&' in a pipeline element
      | produced an object that was not valid. It must result in a command name, a script block, or a CommandInfo
      | object."

Error details
Exception             :
    Type                        : System.Management.Automation.MethodInvocationException
    ErrorRecord                 :
        Exception             :
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : Exception calling "GetSteppablePipeline" with "1" argument(s): "The expression after '&' in a
pipeline element produced an object that was not valid. It must result in a command name, a script block, or a
CommandInfo object."
            HResult : -2146233087
        CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
        FullyQualifiedErrorId : RuntimeException
        InvocationInfo        :
            ScriptLineNumber : 15863
            OffsetInLine     : 9
            HistoryId        : 2
            ScriptName       : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
            Line             :         $steppablePipeline =
$scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)

            Statement        : $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
            PositionMessage  : At C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1:15863 char:9
                               +         $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvoc …
                               +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            PSScriptRoot     : C:\Program Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports
            PSCommandPath    : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
            CommandOrigin    : Internal
        ScriptStackTrace      : at Get-MgUser<Begin>, C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1: line 15863
                                at <ScriptBlock>, <No file>: line 1
    WasThrownFromThrowStatement : True
    TargetSite                  :
        Name          : Invoke
        DeclaringType : System.Management.Automation.Runspaces.PipelineBase, System.Management.Automation,
Version=<IP_ADDRESS>0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message                     : Exception calling "GetSteppablePipeline" with "1" argument(s): "The expression after
'&' in a pipeline element produced an object that was not valid. It must result in a command name, a script block, or
a CommandInfo object."
    Data                        : System.Collections.ListDictionaryInternal
    InnerException              :
        Type        : System.Management.Automation.RuntimeException
        ErrorRecord :
            Exception             :
                Type    : System.Management.Automation.ParentContainsErrorRecordException
                Message : The expression after '&' in a pipeline element produced an object that was not valid. It
must result in a command name, a script block, or a CommandInfo object.
                HResult : -2146233087
            CategoryInfo          : InvalidOperation: (:) [], ParentContainsErrorRecordException
            FullyQualifiedErrorId : BadExpression
            InvocationInfo        :
                ScriptLineNumber : 15862
                OffsetInLine     : 25
                HistoryId        : -1
                ScriptName       : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
                Line             :         $scriptCmd = {& $wrappedCmd @PSBoundParameters}

                Statement        : $wrappedCmd
                PositionMessage  : At C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1:15862 char:25
                                   +         $scriptCmd = {& $wrappedCmd @PSBoundParameters}
                                   +                         ~~~~~~~~~~~
                PSScriptRoot     : C:\Program Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports
                PSCommandPath    : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
                CommandOrigin    : Internal
            ScriptStackTrace      : at Get-MgUser<Begin>, C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1: line 15863
                                    at <ScriptBlock>, <No file>: line 1
        TargetSite  :
            Name          : AddCommand
            DeclaringType : System.Management.Automation.PipelineOps, System.Management.Automation, Version=<IP_ADDRESS>0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35
            MemberType    : Method
            Module        : System.Management.Automation.dll
        Message     : The expression after '&' in a pipeline element produced an object that was not valid. It must
result in a command name, a script block, or a CommandInfo object.
        Source      : System.Management.Automation
        HResult     : -2146233087
        StackTrace  :
   at System.Management.Automation.PipelineOps.AddCommand(PipelineProcessor pipe, CommandParameterInternal[]
commandElements, CommandBaseAst commandBaseAst, CommandRedirection[] redirections, ExecutionContext context)
   at System.Management.Automation.PipelineOps.GetSteppablePipeline(PipelineAst pipelineAst, CommandOrigin
commandOrigin, ScriptBlock scriptBlock, Object[] args)
   at CallSite.Target(Closure, CallSite, Object, Object)
    Source                      : System.Management.Automation
    HResult                     : -2146233087
    StackTrace                  :
   at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
   at Microsoft.PowerShell.Executor.ExecuteCommandHelper(Pipeline tempPipeline, Exception& exceptionThrown,
ExecutionOptions options)
CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId : RuntimeException
InvocationInfo        :
    ScriptLineNumber : 15863
    OffsetInLine     : 9
    HistoryId        : 2
    ScriptName       : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
    Line             :         $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)

    Statement        : $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
    PositionMessage  : At C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1:15863 char:9
                       +         $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvoc …
                       +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    PSScriptRoot     : C:\Program Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports
    PSCommandPath    : C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1
    CommandOrigin    : Internal
ScriptStackTrace      : at Get-MgUser<Begin>, C:\Program
Files\PowerShell\Modules\Microsoft.Graph.Users\2.9.0\exports\ProxyCmdletDefinitions.ps1: line 15863
                        at <ScriptBlock>, <No file>: line 1

Environment data
Name                           Value
----                           -----
PSVersion                      7.4.0
PSEdition                      Core
GitCommitId                    7.4.0
OS                             Microsoft Windows 10.0.22631
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

I get the exact same error in 7.4.0, using the version installed from Microsoft Store. Using 4.3.10 installed from MSI, it works as expected. I have not tried 7.4.0 installed from MSI yet. See attached screenshot.
OS: Windows 10.0.19045 Enterprise Build 19045
Mg-Graph ver. 2.9.1 installed from PSGallery in Windows PowerShell 5 environment.

The error is resolved with Mg-Graph module version 2.10.0 released earlier today. Thus this seems to be a module compatibility problem and not a PowerShell 7.4 problem.

The issue is resolved for get-mguser using Mg-Graph module version 2.10.0 released earlier today. get-mggroup still gives the same error. Thus this seems to be a module compatibility problem and not a PowerShell 7.4 problem.
(Edit: corrected mistakes)

Seems I was mistaken, see thread in https://github.com/microsoftgraph/msgraph-sdk-powershell/issues/2460. Apparently, this error is related to an experimental feature (WDAC) in PowerShell 7.4.0. The related issue https://github.com/PowerShell/PowerShell/issues/20785 has been classified as a bug.


Discussion of switching GetContactPayload to SearchContactPayload

contactRawPayload in padchat-manager.ts is using WXGetContactPayload method to get the contact. Sometimes, the contactId passed to contactRawPayload might not be the friend of the user.
Per my investigation, when message.ts call ready method, it will also call ready method on the from and to Contact. If this message is from a room, the from might not be the friend of the bot, then ready in Contact will try to load the data for the contact, but since the contact is not a friend, with GetContactPayload, there will be no results for it. After that, this payload will be passed to contactRawPayloadParser, and the parser can not read out the user_name, thus cause breakage of the bot.
Do you think we should change the method in contactRawPayload method?

#1358

Yes, Message needs the sender contact to be ready-ed, which means that Contact must be able to load the ContactPayload for itself.
Because in PuppetPadchat it will fail when getting a contact payload for a stranger in the room, so your discussion is very valuable for us to deal with the Pachat protocol well.
My suggestion would be:

Yes, you can try SearchContact, and to see if it could solve this problem. But to my understanding of this API(of the name search), I don't think it would be the solution for us;
Consider to load the sender payload from roomMemberPayload, which I feels should be the best data source for the room members.

https://github.com/Chatie/wechaty/blob/1de61f430f381905fc486750be6ac23c429b4eed/src/puppet-padchat/padchat-manager.ts#L750-L758

@windmemory  I change my code as follows here in padchat-rpc.ts, when get  undefined user_name then change to WXSearchContact()
  /**
   * Get contact by contact id
   * @param {any} id        user_name
   */
  public async WXGetContactPayload(id: string): Promise<PadchatContactPayload> {
    if (!isContactId(id)) { // /@chatroom$/.test(id)) {
      throw Error(`should use WXGetRoomPayload because get a room id :${id}`)
    }
    let result = await this.WXGetContact(id) as PadchatContactPayload

    if (!result.user_name) {
      result = await this.WXSearchContact(id) as PadchatContactPayload
    }

    return result
  }

Well, the API is blocked... Related log as follows:
01:45:53 INFO PadchatRpc WXSearchContact wxid: wxid_pmct091suwyt12 cannot be searched
01:45:53 SILL PuppetPadchat contactRawPayloadParser({user_name=""})
01:45:53 ERR Contact ready() this.puppet.contactPayload(Contact) exception: cannot get user_name from raw payload: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[找不到相关帐号或内容]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 SILL PadchatRpc WXSearchContact result: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[找不到相关帐号或内容]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 INFO PadchatRpc WXSearchContact wxid: wxid_o9yzflim2f0n12 cannot be searched
01:45:53 SILL PuppetPadchat contactRawPayloadParser({user_name=""})
01:45:53 ERR Contact ready() this.puppet.contactPayload(Contact) exception: cannot get user_name from raw payload: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[找不到相关帐号或内容]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 SILL PadchatRpc WXSearchContact result: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[操作过于频繁，请稍后再试]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 INFO PadchatRpc WXSearchContact wxid: yyf2010555 cannot be searched
01:45:53 SILL PuppetPadchat contactRawPayloadParser({user_name=""})
01:45:53 ERR Contact ready() this.puppet.contactPayload(Contact) exception: cannot get user_name from raw payload: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[操作过于频繁，请稍后再试]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 SILL PadchatRpc WXSearchContact result: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[操作过于频繁，请稍后再试]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 INFO PadchatRpc WXSearchContact wxid: wxid_hjjqix6dojdr12 cannot be searched
01:45:53 SILL PuppetPadchat contactRawPayloadParser({user_name=""})
01:45:53 ERR Contact ready() this.puppet.contactPayload(Contact) exception: cannot get user_name from raw payload: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[操作过于频繁，请稍后再试]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 SILL PadchatRpc WXSearchContact result: {"big_head":"","city":"","country":"","message":"\n�\u0002<e>\n<ShowType>1</ShowType>\n<Content><![CDATA[操作过于频繁，请稍后再试]]></Content>\n<Url><![CDATA[]]></Url>\n<DispSec>30</DispSec>\n<Title><![CDATA[]]></Title>\n<Action>2</Action>\n<DelayConnSec>0</DelayConnSec>\n<Countdown>0</Countdown>\n<Ok><![CDATA[]]></Ok>\n<Cancel><![CDATA[]]></Cancel>\n</e>\n","nick_name":"","provincia":"","py_initial":"","quan_pin":"","sex":0,"signature":"","small_head":"","status":-24,"stranger":"","user_name":""}
01:45:53 INFO PadchatRpc WXSearchContact wxid: wxid_v6hwv4tc5na921 cannot be searched
01:45:53 SILL PuppetPadchat contactRawPayloadParser({user_name=""})

Maybe this is because WXSearchContact() is related to add a friend, this should not be used to frequently. But WXGetContact() can be called frequently more than WXSearchContact().
So maybe we shouldn't change WXGetContact to WXSearchContact...

Thanks @lijiarui for your investigation. You make it easy to answer @zixia 's comment. We need to load the data from roomMember instead of contact.
Then I got another question. I think @zixia could answer this well.
I think it's better to keep align with the original design so we don't break anyone.
What's the original design for room member? Are these information also supposed to be stored in Contact? If so, we need to fill the member data into Contact when we sync the room member, otherwise, we should change the find logic here for the room member.

After reading code carefully, I find that there are two places that writes the contact information to cache.
One is here in SyncContactsAndRooms
https://github.com/Chatie/wechaty/blob/d89f77f4bb98c83f4b91c8c419d4a154014a3f41/src/puppet-padchat/padchat-manager.ts#L883-L895
The other one is in contactRawPayload
https://github.com/Chatie/wechaty/blob/d89f77f4bb98c83f4b91c8c419d4a154014a3f41/src/puppet-padchat/padchat-manager.ts#L947-L954
Code in SyncContactsAndRooms seems to be safe and will always write valid data into cache, but the code in contactRawPayload is not safe. There was a check before we writes data into cache, but got removed after. I think we should always check the payload before we set the payload into the cache. At least check the payload is not empty.
Besides, seems like the contactRawPayload is the deepest datasource in padchat for contact, so I wonder whether it makes more sense to move the logic of checking roomMemberList from puppet-padchat to this method?

Thank you for reading code carefully.
I believe we should create a new issue because the discussion right now is not related to the current title of SearchContactPayload.
And also please notice that I had moved all the code base related to the wechaty-puppet-padchat to it's new home at https://github.com/lijiarui/wechaty-puppet-padchat, all the future development and discussion should be moved over there.

Cool, I will close this issue.


add CI test for platform dylib

This commit was included in https://github.com/roc-lang/roc/pull/4660


fix(engine): secrets created inside module constructor fail on repeated accesses

intended to fix #8935, currently just 1 correctly failing test built from the initial report

poking around and adding debug logs, on the second call, the secret store we're trying to fetch from really does not have the secret we're looking for, in fact it has none. sorry for the munged af logs:
first, successful call:
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! AddSecretFromOtherStore" client_hostname=buildkitsandbox client_id=vowuw8q8aap10qxlyc9k5khfm session_id=1i79h53783
  ┃ w5xnx1y22m7 spanID=5173a77d32b6f779 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! secret: &core.Secret{Query:(*core.Query)(0x4007252e40), IDDigest:\"xxh3:a304521904080314\"}" client_hostname=build
  ┃ andbox client_id=vowuw8q8aap10qxlyc9k5khfm session_id=1i79h53783ae2ow5xnx1y22m7 spanID=5173a77d32b6f779 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! store: &core.SecretStore{secrets:map[digest.Digest]*core.storedSecret{}, mu:sync.RWMutex{w:sync.Mutex{state:0, sem
  ┃ 0}, writerSem:0x0, readerSem:0x0, readerCount:atomic.Int32{_:atomic.noCopy{}, v:0}, readerWait:atomic.Int32{_:atomic.noCopy{}, v:0}}}" client_hostname=buildkitsand
  ┃ client_id=vowuw8q8aap10qxlyc9k5khfm session_id=1i79h53783ae2ow5xnx1y22m7 spanID=5173a77d32b6f779 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! otherStore: &core.SecretStore{secrets:map[digest.Digest]*core.storedSecret{\"xxh3:a304521904080314\":(*core.stored
  ┃ et)(0x400bb5e4e0)}, mu:sync.RWMutex{w:sync.Mutex{state:0, sema:0x0}, writerSem:0x0, readerSem:0x0, readerCount:atomic.Int32{_:atomic.noCopy{}, v:0}, readerWait:ato
  ┃ Int32{_:atomic.noCopy{}, v:0}}}" client_hostname=buildkitsandbox client_id=vowuw8q8aap10qxlyc9k5khfm session_id=1i79h53783ae2ow5xnx1y22m7 spanID=5173a77d32b6f779 t
  ┃ ID=19beae6ed4bf10a3f6da4a2cb8a4749a

second call (note the empty map)
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! AddSecretFromOtherStore" client_hostname=buildkitsandbox client_id=o53fav0csil31n2ktdntgnta3 session_id=1i79h53783
  ┃ w5xnx1y22m7 spanID=7b13e12b25adcc21 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! secret: &core.Secret{Query:(*core.Query)(0x4007252e40), IDDigest:\"xxh3:a304521904080314\"}" client_hostname=build
  ┃ andbox client_id=o53fav0csil31n2ktdntgnta3 session_id=1i79h53783ae2ow5xnx1y22m7 spanID=7b13e12b25adcc21 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ time="2024-11-15T19:30:51Z" level=debug msg="!!! store: &core.SecretStore{secrets:map[digest.Digest]*core.storedSecret{}, mu:sync.RWMutex{w:sync.Mutex{state:0, sem
  ┃ 0}, writerSem:0x0, readerSem:0x0, readerCount:atomic.Int32{_:atomic.noCopy{}, v:0}, readerWait:atomic.Int32{_:atomic.noCopy{}, v:0}}}" client_hostname=buildkitsand
  ┃ client_id=o53fav0csil31n2ktdntgnta3 session_id=1i79h53783ae2ow5xnx1y22m7 spanID=7b13e12b25adcc21 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a
  ┃ !!! destClient: (*server.daggerClient)<Client o53fav0csil31n2ktdntgnta3: uninitialized>!!! srcClient: (*server.daggerClient)<Client f9qyfciabzvi9c15f5prm8yaa: init
  ┃ zed>time="2024-11-15T19:30:51Z" level=debug msg="!!! otherStore: &core.SecretStore{secrets:map[digest.Digest]*core.storedSecret{}, mu:sync.RWMutex{w:sync.Mutex{sta
  ┃ , sema:0x0}, writerSem:0x0, readerSem:0x0, readerCount:atomic.Int32{_:atomic.noCopy{}, v:0}, readerWait:atomic.Int32{_:atomic.noCopy{}, v:0}}}" client_hostname=bui
  ┃ tsandbox client_id=o53fav0csil31n2ktdntgnta3 session_id=1i79h53783ae2ow5xnx1y22m7 spanID=7b13e12b25adcc21 traceID=19beae6ed4bf10a3f6da4a2cb8a4749a

I've climbed the stack a bit, but don't really understand why the src client would have an empty secret store like this and they don't carry quite carry enough data to identify where they came from... each call seems to be a new session.

I climbed the stack a bit more just now, found that the failure to add the secret from the other store occurs specifically in client initialization when attempting to add resources from parent calls sourced from the caller client
Interestingly, I've also modified the test to do 2 gets of "a" followed by one of "b"... the failure only occurs on the get of "b", even though the value is the same for both calls. My understanding is that this means that cache-keying on fn arguments either avoids this error entirely for repeated calls with the same input or possibly causes it somehow, like maybe we expect to find this resource cached bc on one level we've already got it, but it's keyed differently on the "b" calls? tbh that feels like the wrong track simply because when we get further down the stack, we find that we're trying to pull our desired secret from an empty secret store.

did some real crazy log processing of the added test and came out with at least a hypothesis. From my log processing, it looks like the "Issue" client never gets the secret from the "Keychain" clients copied to its, but when Issue goes back to call Keychain repeatedly with different args, the engine expects to find that secret in its secret store.
I think the problem here, with nesting, is that the Secret resource is not returned from the test keychain's "Get" method, but the code expects that it's propagated up to the caller client SecretStore, "Issue" in the case the of of the test.
messy notes attached for posterity, came up with this by very carefully extracting client IDs from the logs and then timelining the events. see the added test if you want this to be anything other than gibberish.
cc @jedevc as well, because this feels very entangled with #8358 and the fn.root.AddClientResourcesFromIDs call in ModuleFunction.Call.
Hl94 -> actual parent
24wv -> keychain
M1ap -> generator
Tddrb -> second generator(a) call? if so, why does 24wv get to be re-used but this one doesn't?

Lskg35 -> keychain with b?
Xlkg -> generator with b?

1. From hl94 to 24wv -> nothing to copy
2. 24wv to m1apmms ? nothing to copy
3. m1apmms to 24wv -> copied
4. From 24wv to tddrb -> copied
5. hl94 to lskg35 -> nothing to copy
6. From lskg35 to xlgx -> nothing to copy, happens twice, by callID then parent

Okay, so I think I've pushed a fix for this, but I may be wrong.
I think this is actually the exact same issue as described in https://github.com/dagger/dagger/pull/8358#issuecomment-2346006330 - and the fix works - but it wasn't being applied for constructors (which seems like an oversight on my part).
What's happening in your example from https://github.com/dagger/dagger/issues/8935:

The second call to dag.Generator (with "b") is cached
But then we try and access the secret in Gen - but since that client never actually ran, we have no client to grab the secret from
The solution is the same as in c3b1774 (#8358). We need to do the secret transfer from the client that was originally cached.

There's more info in the commit I pushed.

@jedevc's fix works. repeating my log-processing on the working version, iiuc, allowing constructors to maintain field impurity makes it so the client can source the secret from the generator client that originally returned it instead of looking for it in the "issue" client that never receives it.
From the original log processing, I don't really understand wtf client tddrb is, I'd have liked it to be hl94, but this should be mergeable as-is.


perl: patch perl-5.22.0-msys2.patch breaks ExtUtils::CBuilder module

The patch (perl-5.22.0-msys2.patch) introduces the "msys" configuration type into the build.  Consequently, trying to build modules which rely on CBuilder functioning properly will fail as a check is performed to find its build environment file which resolves to /usr/share/perl5/core_perl/ExtUtils/CBuilder/Platform/msys.pm
This file naturally does not exist.  As a workaround, I have been making a copy of the cygwin.pm file and altering the lines:
package ExtUtils::CBuilder::Platform::cygwin;
$ExtUtils::CBuilder::Platform::cygwin::VERSION = '0.280221';

To:
package ExtUtils::CBuilder::Platform::msys;
$ExtUtils::CBuilder::Platform::msys::VERSION = '0.280221';

Which has not shown any issues.  It would be easy to handle this on packaging, but I'm open to other suggestions.

Fixed in perl 5.22.1


Authorization header sent everywhere

I have an issue with this plugin. If I am signed in, authorization header is sent everywhere, not only to my API endpoint. It is sent to s3 bucket (resulting to the following error: InvalidArgumentUnsupported Authorization TypeAuthorizationToken token="Op+VpQzIsvrraICwdMz1GtOHenc7xzN2Z5W6izwAkbPLulnRNb/TVQp1sfCRxKdxo/3fyN7lfMVOwk8tsVj8lQ=="<EMAIL_ADDRESS>, it is sent to cloudinary which results to a CORS issue since cloudinary api does not allow Authorization header to be sent.

This can only happen if you configure the crossOriginWhitelist as '*', otherwise it would be a severe bug.

Damn you are right, thanks!


Custom Desc for channel with Xteve_dummy

would it be possible to add a option to specify a custom desc per channel when using xteve_dummy?
it looks nicer, even if there is no epg data for that channel to seen a nice desc with info over that channel.
thanks in advanced.

Can you describe something more precisely. What should be displayed in the dummy EPG?

for example
This wil now be display in epg for channel NL: BNR TV when settings epg to xteve-dummy (60 Minutes)
it would be great if there is a extra "text field" under the xteve-dummy (60 Minutes) dropdown menu, where you can set a custom description for that channel.
so the final epg looks like this:
      <programme channel="1036" start="20191210000000 +0100" stop="20191210010000 +0100">           <title lang="en">NL: BNR TV (Tu. 00:00 - 01:00)</title>           <desc lang="en">**This is my description of this wonderfull channel, a channel about local news in a region of The Netherlands**</desc>           <episode-num system="original-air-date">2019-12-10 00:00:00</episode-num>           <icon height="" src="icon.png""></icon>           <video></video>           <date></date>           <new></new>       </programme>

It looks like you want to add EPG info to a channel that has no EPG at all? Please explain where this data you have above comes from for a channel without this data. <programme channel="1036" start="20191210000000

He wants to have a channel description in the xteve.xml. This will then be displayed in the DVR client.
I think the idea is good for the dummy because the channel name should not be too long.

Description...ok....As long as it doesn't hurt the current CUID PPV Sports Channels, Please :)

Do not worry, the name will not be changed. In the next few days comes an update.

Do not worry, the name will not be changed. In the next few days comes an update.

Thank you! thats exactly what i mean.. :)

No problem.


Fr translation isn't aligned bewteen head and body

On my hosts I have this display in en :
$ LANG= /bin/dfc
FILESYSTEM     (=) USED      FREE (-)  %USED AVAILABLE  TOTAL MOUNTED ON
dev            [--------------------]   0.0%      7.8G   7.8G /dev
run            [=-------------------]   0.0%      7.8G   7.8G /run
/dev/nvme0n1p2 [==========----------]  46.3%    251.5G 468.0G /
tmpfs          [=-------------------]   0.0%      7.8G   7.8G /dev/shm
tmpfs          [--------------------]   0.0%      4.0M   4.0M /sys/fs/cgroup
tmpfs          [=-------------------]   0.0%      7.8G   7.8G /tmp
/dev/nvme0n1p1 [=====---------------]  24.9%    383.6M 511.0M /boot
tmpfs          [=-------------------]   0.0%      1.6G   1.6G /run/user/1000

And I have this display on fr :
$ LANG=fr_FR.UTF-8 /bin/dfc -Tw
SYSTÈME DE FICHIERS TYPE     (=)  UT.                                    LIB. (-)  %UTILISÉ DISPO.  TOTAL MONTÉ SUR
dev                  devtmpfs [--------------------------------------------------]       0,0%   7,8G   7,8G /dev
run                  tmpfs    [=-------------------------------------------------]       0,0%   7,8G   7,8G /run
/dev/nvme0n1p2       ext4     [========================--------------------------]      46,3% 251,5G 468,0G /
tmpfs                tmpfs    [=-------------------------------------------------]       0,0%   7,8G   7,8G /dev/shm
tmpfs                tmpfs    [--------------------------------------------------]       0,0%   4,0M   4,0M /sys/fs/cgroup
tmpfs                tmpfs    [=-------------------------------------------------]       0,0%   7,8G   7,8G /tmp
/dev/nvme0n1p1       vfat     [=============-------------------------------------]      24,9% 383,6M 511,0M /boot
tmpfs                tmpfs    [=-------------------------------------------------]       0,0%   1,6G   1,6G /run/user/1000

po files seems ok, and I tried to debug it, but I'm not able to test debug or release compiled bin in fr, I must forget something (never tried to work with gettext in c yet).
Can I test something else to help ? Is there any way to test it myself ?

Thanks for the report. How important is translation to you? I've been considering dropping translation support for a while now given that it's a pain to maintain. In this case, for correct text output, the headers MUST be of the same length regardless of the language, which is apparently not the case anymore.

When checking the code, I was thinking that col width was managed, and that custom length was authorized. Am I wrong ?
I won't stop using dfc because of a lack of translations, bug they can be useful for some people.
If you have a list of devices, you can do a first check of them to validate the max length, and compare it with the header. Then you draw the header/body lines. I was convinced that already was the case.


Can not change password in the user profile

When changing password, get an error message:
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.

This is because email isn't working.
Email isn't working for 2 reasons:

DNS for mailgun has not been fully set up yet
https://github.com/on-site/grantzilla/pull/47/files#r51004252

I am unable to verify this issue. Closing for now. Please reopen if this is repeatable.


Enabled default value for temperature and top_p

Hi,
The current version requires the temperature and top_p to be included in the api request, otherwise the api request will fail.
This PR just enabled the default value of temperature and top_p which actually have been set (to 0.5 and 1.0) but not configured/enabled.

If default values are set for both temp and top_p, serde will not deserialize a mirostat variant because all fields of the nucleus variant have default values and the deserializer chooses it in priority. I am looking into a fix for this.


Use gke istio add-on.

Do not depend on serving istio.

/test pull-knative-eventing-sources-integration-tests

This PR shouldn't be necessary anymore, plus it would break local testing with non-GKE clusters. Updating test-infra to the latest version should be enough; @chaodaig and @Fredy-Z to confirm.
/hold

This PR shouldn't be necessary anymore, plus it would break local testing with non-GKE clusters. Updating test-infra to the latest version should be enough; @chaodaiG and @Fredy-Z to confirm.
/hold

agree

/close


add support for 1.25

Issue #, if available:
Description of changes:
Adding support for 1.25
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Nice, have you tested this change out  by spinning a 1.25 ? Want to make sure images are published and accessible etc.

Yup they are tested
NAME                                 READY   STATUS    RESTARTS   AGE
example-apiserver-54df67bf8b-k9skl   1/1     Running   0          157m
example-authenticator-f8ff9          1/1     Running   0          157m
example-controller-manager-8bp6c     1/1     Running   0          157m
example-etcd-0                       1/1     Running   0          168m
example-etcd-1                       1/1     Running   0          168m
example-etcd-2                       1/1     Running   0          168m
example-scheduler-clqt7              1/1     Running   0          157m

@hakuna-matatah


Promote AddTodo to proper container component

Thanks, but I don't think this is really necessary.


fork: Allow forking from remotes other than "origin"

The fork command can be used in two ways:

when passed a namespaced project name (e.g. "SomeGroup/AwesomeProject"),
the project is forked (and optionally cloned)
without arguments, the project name is determined from the "origin"
remote in the current repository, forked and added as remote

The second mode currently doesn't work if the repository pointed to by
"origin" doesn't use the Namespace/Project structure gitlab expects.
Support that use case by also picking the second mode when the passed
argument corresponds to an existing remote.
Fixes #563

Hi, due to no fault of yours the lab test code was broken.  I have fixed the tests in #575 and #573 .  Can you please rebase to see if your build will past testing?  My sincere apologies for the inconvenience.

Hi, due to no fault of yours the lab test code was broken.  I have fixed the tests in #575 and #573 .  Can you please rebase to see if your build will past testing?  My sincere apologies for the inconvenience.


Do not rewrite manifest.json during docs serve command

resolves #7553
Description

Currently, because dbt docs serve "requires" a manifest, it will re-parse the project and (over)write manifest.json
This has the effect of overwriting the compiled manifest just produced by dbt docs generate
We don't actually need a manifest for any of the functionality in dbt docs serve! dbt just expects it to exist, in the target/ path, in already serialized (JSON) form.

Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have signed the CLA
[x] I have run this code in development and it appears to resolve the stated issue
~This PR includes tests, or tests are not required/relevant for this PR~
~I have opened an issue to add/update docs, or docs changes are not required/relevant for this PR~
[x] I have run changie new to create a changelog entry

Thanks @jtcohen6 - amazingly fast response on this!


[feature request] add yAxis support

I want to implement something like this

Currently I have done everything but the yAxis... Any workarounds?

我也想要y轴啊，类似于这种

@Unremittingly This can be achieved by adding another grid component and add xAxis with show: false and yAxis with show: true.


extend monitor api

Extend monitor API to have filtering by tag and group state.

I have a similar PR that adds all options at #199, which (biased opinion) is a little bit more flexible and means we have to make fewer breaking API changes in the future if more options are added.

Yes I agree, your PR is more flexible. I would be happy to discard this one of yours is merged.

We can close this since we merged https://github.com/zorkian/go-datadog-api/pull/199 then.


obsolete terms that require multiple evidence types to annotate

based on:
Jacky:
For the  term FYPO:0004922 you need to have two different lines of evidence - microscopy and flow cytometry.  However you can only select one of them. Would it be best to use two different FYPO terms and give the evidence  microscopy  for one and  flow cytometry for other
I suspect we should not therefore have the compound term, if it can only be 2 separate
observations? i think this is my fault, by trying to classify the different
'types of elongated' but we will need to do this by analysing concurrent
annotations for the same alleles to
inviable elongated mononucleate aseptate vegetative
and
cell cycle arrest in mitotic G2 phase

There are a bunch of other terms (list below) where the same concern applies. We really should handle them all consistently, whether we keep them or make them obsolete.
I suspect I haven't used these terms as much as you & Jacky, but when I have I've just swept the evidence question under the rug and used microscopy - technically, it loses part of the evidence information, but I've chosen other battles ;)
these are definitely affected:
FYPO:0003128 inviable elongated mononucleate aseptate vegetative cell with cell cycle arrest in mitotic M phase
FYPO:0003825 inviable binucleate aseptate cell with mitotic cell cycle arrest in G2 before cell separation
FYPO:0003826 inviable elongated binucleate aseptate cell with mitotic cell cycle arrest in G2 before cell separation
FYPO:0003875 inviable elongated cell with mitotic G2/M transition delay and cell cycle arrest in M phase
FYPO:0003979 abnormal mitotic cell cycle arrest with condensed chromosomes, septated cell with 1C DNA
FYPO:0004197 inviable elongated vegetative cell with fragmented nucleus and mitotic cell cycle arrest in interphase
FYPO:0005321 inviable elongated mononucleate aseptate vegetative cell with cell cycle arrest in mitotic metaphase
FYPO:0005367 inviable mononucleate aseptate vegetative cell with cell cycle arrest in mitotic G2 phase
FYPO:0005422 inviable elongated vegetative cell with fragmented nucleus and mitotic cell cycle arrest in interphase during cellular response to UV
and maybe also these:
FYPO:0001385 inviable after spore germination, without cell division, cell cycle arrest with replicated DNA
FYPO:0001497 inviable elongated vegetative cell with mitotic cell cycle arrest in interphase
FYPO:0003171 binucleate monoseptate cell with mitotic cell cycle arrest before cell separation
FYPO:0004473 inviable after spore germination, without cell division, cell cycle arrest with unreplicated DNA
FYPO:0004719 abnormal mitotic cell cycle arrest with condensed chromosomes, septated cell
FYPO:0005421 inviable elongated vegetative cell with mitotic cell cycle arrest in interphase during cellular response to UV
FYPO:0005689 inviable binucleate aseptate cell with mitotic cell cycle arrest before cell separation

Yeah this is my fault....
I think the compound terms are really useful when they are observed simultaneously, but in retrospect I think we should  limit this to things which are observed during the same experiment.
Once we have cleverer searching, users will still be able to get these lists if they can use conditions and allele-types in searches/filters etc

So the actual problem seems to be that it takes more than one type of evidence to show that a cell has one of these complex phenotypes.
Should we investigate supporting more than one evidence entry per annotation? It mightbe a pain technically or to make it user-friendly, but if we could do it, we could keep these terms, flag them in the soft-check file for now, and restore them to use later.
What I Do.Not.Want. to do is make them obsolete now, and then have them requested again later if we end up solving the evidence problem anyway.

In my limited experience I think it would be useful to be able to have more than one type of evidence per annotation.
Jacky
From: Midori Harris <notifications<EMAIL_ADDRESS>Reply-To: pombase/fypo <reply<EMAIL_ADDRESS>Date: Monday, 12 December 2016 at 11:09
To: pombase/fypo <fypo<EMAIL_ADDRESS>Subject: Re: [pombase/fypo] obsolete term? (#2872)
So the actual problem seems to be that it takes more than one type of evidence to show that a cell has one of these complex phenotypes.
Should we investigate supporting more than one evidence entry per annotation? It mightbe a pain technically or to make it user-friendly, but if we could do it, we could keep these terms, flag them in the soft-check file for now, and restore them to use later.
What I Do.Not.Want. to do is make them obsolete now, and then have them requested again later if we end up solving the evidence problem anyway.

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/pombase/fypo/issues/2872#issuecomment-266401926, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANVVaFLg7Nm6iEtnV0ncqzSeDEj9g13uks5rHSuHgaJpZM4KgFCF.
The Francis Crick Institute Limited is a registered charity in England and Wales no. 1140062 and a company registered in England and Wales no. 06885462, with its registered office at 215 Euston Road, London NW1 2BE.

Would you use two evidence codes
A. when you do 2 completely different experiments showing the same thing in one paper (for example by showing that a protein is in the mitochondria i. by microscopy and ii. by fractionation and western blotting
B. When information from two different experiments are needed to arrive at one annotation (I can't think of a neat example but this definitely happens)

I think you could use two evidence codes in either case, but for A making two separate annotations, one with each code, would say the same thing. It's case B that we can't cope with effectively at present.
For things like FYPO:0004922 "inviable elongated mononucleate aseptate vegetative cell with cell cycle arrest in mitotic G2 phase", you need microscopy to see the elongated, mononucleate and aseptate parts, and something else, usually FACS, to see the G2 arrest part.

and cell growth experiment to see that there really aren't any divisions? - so we'd need 3 codes ;)

Let's think about this in the New Year, at a curator meeting when we are all there...

Summary, we want to split.

Get the numbers single and multi
Decide how to migrate...(some will need evidence changing)
Implement

assignees: me to do ontology work; all to review annotations

Outcome of #2544 implies that we do not want to try to eliminate this kind of precomposed term globally. Open new ticket(s) for any specific individual terms that we now think went a bit too far.

Yep, we need the ability to use terms that should require combinatorial evidence codes in some circumstances... so I guess we might want to include a couple of combinatorial evidence codes...


Use on Android tunnel-client

Hi.
This looks great ! .
Can be possible to use this on Android as client and the server on a VPS to create a tunnel and use it like VPN ?
Can someone can create a app that allow http headers request, please ?
This way we can use it bypass firewall from ISP and many people can use this excellent program .
I hope your answers.

Sorry, but this project is sub-project for TeaWeb (https://github.com/TeaWeb/build) , can't be used independently. Maybe you should checkout ngrok or frp.


The "Update README"

The "Update README" action fails for 'content-base' and 'content-pro' images on hub.docker.com.

This was resolved with #171


Remove base price field

I want to merge this change because...

Impact

[X] New migrations
[X] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[X] Removed API types, fields, or mutations
[X] Documentation needs to be updated

Pull Request Checklist

[X] Privileged queries and mutations are guarded by proper permission checks
[X] Database queries are optimized and the number of queries is constant
[X] Database migration files are up to date
[X] The changes are tested
[X] GraphQL schema and type definitions are up to date
[X] Changes are mentioned in the changelog

@maarcingebala good points, working on changes