Enable media server remux

And be sure to reply on here after you make more changes; it doesn't send me emails about it unless you do (so I would forget to look at it again otherwise).

I think I have addressed the issues you pointed out. Other than the mistake I made comparing two files, none of them were significant enough to change anything in a noteworthy way, so I'm comfortable with this quick turnaround.

OK, just two more comments from me. One I think is an actual bug; the other is just commenting. I am leaving for vacation tomorrow; so if you can get the changes in today I can merge them before I leave.

I agree on the comments, it's always nice to see them when you're trying to figure out what the other guy was thinking. I always hate that when I'm looking at a project and comments are missing because the author thought the intent was obvious...and it's really not.

Yeah! New remuxer is merged. Thanks for all the hard work!


host parameter ignored by igvR constructor

The host parameter specified by the igvR constructor appears to be ignored and this is leading to errors displaying tracks:
igv <- igvR(host = "<IP_ADDRESS>", quiet=TRUE)
igv@uri
# "http://localhost:15002"

# ... setup genome and tracks
displayTrack(igv, my_bam_track)
# bam url: http://localhost:15003?/tmp/Rtmp0ZcCIP/filec49620e6c76a.bam
# bam track height: 50

Note that the uri slot and the displayTrack message both say "localhost" instead of the host value I specified.  The actual viewer also displays an error:
Error accessing resource: http://localhost:15003?/tmp/Rtmp0ZcCIP/filec49620e6c76a.bam.bai Status: 0
sessionInfo() is:

R version 4.0.2 (2020-06-22)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.5 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale:
 [1] LC_CTYPE=C.UTF-8       LC_NUMERIC=C           LC_TIME=C.UTF-8        LC_COLLATE=C.UTF-8     LC_MONETARY=C.UTF-8
 [6] LC_MESSAGES=C.UTF-8    LC_PAPER=C.UTF-8       LC_NAME=C              LC_ADDRESS=C           LC_TELEPHONE=C
[11] LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] BSgenome.Hsapiens.UCSC.hg38_1.4.3 BSgenome_1.58.0                   rtracklayer_1.50.0
 [4] igvR_1.15.3                       BrowserViz_2.12.0                 httpuv_1.6.5
 [7] jsonlite_1.7.3                    GenomicAlignments_1.26.0          SummarizedExperiment_1.20.0
[10] Biobase_2.50.0                    MatrixGenerics_1.2.1              matrixStats_0.61.0
[13] reticulate_1.16                   data.table_1.14.2                 forcats_0.5.0
[16] stringr_1.4.0                     dplyr_1.0.7                       purrr_0.3.4
[19] readr_1.3.1                       tidyr_1.1.1                       tibble_3.1.6
[22] ggplot2_3.3.2                     tidyverse_1.3.0                   Rsamtools_2.6.0
[25] Biostrings_2.58.0                 XVector_0.30.0                    GenomicRanges_1.42.0
[28] GenomeInfoDb_1.26.7               IRanges_2.24.1                    S4Vectors_0.28.1
[31] BiocGenerics_0.36.1

loaded via a namespace (and not attached):
 [1] colorspace_2.0-2         ellipsis_0.3.2           fs_1.5.2                 rstudioapi_0.13          farver_2.1.0
 [6] bit64_4.0.5              AnnotationDbi_1.52.0     fansi_1.0.2              lubridate_1.7.9          xml2_1.3.3
[11] cachem_1.0.6             knitr_1.29               splitstackshape_1.4.8    seqLogo_1.56.0           broom_0.7.0
[16] dbplyr_2.1.1             compiler_4.0.2           httr_1.4.2               backports_1.4.1          assertthat_0.2.1
[21] Matrix_1.4-0             fastmap_1.1.0            cli_3.1.1                later_1.3.0              prettyunits_1.1.1
[26] tools_4.0.2              gtable_0.3.0             glue_1.6.1               GenomeInfoDbData_1.2.4   rappdirs_0.3.3
[31] Rcpp_1.0.8               cellranger_1.1.0         vctrs_0.3.8              xfun_0.16                rvest_0.3.6
[36] lifecycle_1.0.1          XML_3.99-0.8             zlibbioc_1.36.0          scales_1.1.1             VariantAnnotation_1.36.0
[41] hms_1.1.1                promises_<IP_ADDRESS>         RColorBrewer_1.1-2       curl_4.3.2               memoise_2.0.1
[46] biomaRt_2.46.3           stringi_1.7.6            RSQLite_2.2.9            GenomicFeatures_1.42.3   BiocParallel_1.24.1
[51] rlang_1.0.0              pkgconfig_2.0.3          bitops_1.0-7             lattice_0.20-45          labeling_0.4.2
[56] bit_4.0.4                tidyselect_1.1.1         magrittr_2.0.2           R6_2.5.1                 generics_0.1.1
[61] DelayedArray_0.16.3      DBI_1.1.2                pillar_1.6.5             haven_2.3.1              withr_2.4.3
[66] RCurl_1.98-1.5           MotifDb_1.32.0           modelr_0.1.8             crayon_1.4.2             utf8_1.2.2
[71] BiocFileCache_1.14.0     progress_1.2.2           grid_4.0.2               readxl_1.3.1             blob_1.2.2
[76] reprex_0.3.0             digest_0.6.29            openssl_1.4.6            munsell_0.5.0            viridisLite_0.3.0
[81] askpass_1.1

EDIT:
I manually edited the contents of the uri slot, but am still getting the viewer error.  The path in the URL "/tmp/Rtmp0ZcCIP/filec49620e6c76a.bam" is the correct file.  When I use lsof on the command line, I notice that rsession is still listening on localhost instead of the ip, so I think that is still the issue.

@genec1  - looking at this now, thanks for the report.

@genec1,
The constructor's host argument is a bad idea - my bad idea, left over from a long time ago.  The man page on the constructor illuminates this, partly:
 @param host In practice, this is always "localhost"

The justification:   igvR displays in your browser, and it is hard for me to imagine a case when "your browser" runs on anything but localhost.   Do you have a use-case that suggests otherwise?  I'd be glad to see that, and to see if I can support it.
Even with this historical relic cleaned up, I have not helped you with your problem.  Let me make sure I understand what that is.    The best way would be for you to include the code with which you construct  your GenomicAlignmentsTrack object.   Here are two examples from inst/unitTests/test_igvR.R.
First, display an alignment already read into memory:
   little.region <- GRanges(seqnames="21", ranges=IRanges(10400126, 10400326))
   param <- ScanBamParam(which=little.region, what=scanBamWhat())
   x <- readGAlignments(bamFile, use.names=TRUE, param=param)
   track <- GenomicAlignmentTrack("bam demo", x, visibilityWindow=2000000, trackHeight=500)  # 30000 default
   displayTrack(igv, track)

Second, display an alignment hosted elsewhere:
   url <- "https://1000genomes.s3.amazonaws.com/phase3/data/HG02450/alignment/HG02450.mapped.ILLUMINA.bwa.ACB.low_coverage.20120522.bam"
   index <- "https://1000genomes.s3.amazonaws.com/phase3/data/HG02450/alignment/HG02450.mapped.ILLUMINA.bwa.ACB.low_coverage.20120522.bam.bai"
   track <- RemoteAlignmentTrack("remote bam", url, index, visibilityWindow=100000)
   displayTrack(igv, track)

How do you create your track object?

@genec1, The constructor's host argument is a bad idea - my bad idea, left over from a long time ago. The man page on the constructor illuminates this, partly:
 @param host In practice, this is always "localhost"

The justification: igvR displays in your browser, and it is hard for me to imagine a case when "your browser" runs on anything but localhost. Do you have a use-case that suggests otherwise? I'd be glad to see that, and to see if I can support it.

My particular use case is I’m running the code on an instance on AWS, as my local machine can’t handle the amount of data I’m working with.

Even with this historical relic cleaned up, I have not helped you with your problem. Let me make sure I understand what that is. The best way would be for you to include the code with which you construct your GenomicAlignmentsTrack object. Here are two examples from inst/unitTests/test_igvR.R.

How do you create your track object?

I’m working with local bam files read into GenomicAlignment objects very similar to your first example. I will share actual code when I’m back on my workstation.
Thanks

Bam track display code:
# libraries
library(igvR)
library(BSgenome.Hsapiens.UCSC.hg38)

# setup igv
igv <- igvR(quiet=TRUE)
setGenome(igv, "hg38")
showGenomicRegion(igv, "chr17:7,663,654-7,692,258")
loc <- getGenomicRegion(igv)
logGR <- with(loc, GRanges(seqnames=chrom, ranges = IRanges(start, end)))
param <- ScanBamParam(which=logGR, what = scanBamWhat())

# setup bam
# <define BAM_FILE_PATH and BAM_TRACK_NAME>
galign <- readGAlignments(BAM_FILE_PATH, use.names=TRUE, param=param)
track <- GenomicAlignmentTrack(BAM_TRACK_NAME, galign)
displayTrack(igv, track)
# bam url: http://localhost:15001?/tmp/Rtmpqy9pbo/fileae83dff0a45.bam
# bam track height: 50

# viewer message: Error accessing resource: http://localhost:15001?/tmp/Rtmpqy9pbo/fileae83dff0a45.bam.bai Status: 0

Thanks @genec1.  Could you also give me the exact BAM_FILE_PATH so that, with proper substitutions, I can emulate it here?

Paul

On Jan 31, 2022, at 9:03 AM, genec1 @.***> wrote:
Bam track display code:
libraries
library(igvR)
library(BSgenome.Hsapiens.UCSC.hg38)
setup igv
igv <- igvR(quiet=TRUE)
setGenome(igv, "hg38")
showGenomicRegion(igv, "chr17:7,663,654-7,692,258")
loc <- getGenomicRegion(igv)
logGR <- with(loc, GRanges(seqnames=chrom, ranges = IRanges(start, end)))
param <- ScanBamParam(which=logGR, what = scanBamWhat())
setup bam

galign <- readGAlignments(BAM_FILE_PATH, use.names=TRUE, param=param)
track <- GenomicAlignmentTrack(BAM_TRACK_NAME, galign)
displayTrack(igv, track)
bam url: http://localhost:15001?/tmp/Rtmpqy9pbo/fileae83dff0a45.bam
bam track height: 50
viewer message: Error accessing resource: http://localhost:15001?/tmp/Rtmpqy9pbo/fileae83dff0a45.bam.bai Status: 0
—
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 commented.

BAM_FILE_PATH is the full path to a local file on the AWS instance where I'm running R, so I don't think it will be of help to you.

@genec1 - you are right, of course.   I will need to name a file on my local system since yours will be invisible to me.
Nevertheless, and though you may think I am being silly, please provide me with the exact full file path you use.

Paul

On Jan 31, 2022, at 11:29 AM, genec1 @.***> wrote:
BAM_FILE_PATH is the full path to a local file on the AWS instance where I'm running R, so I don't think it will be of help to you.
—
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 commented.

No problem.  I'm working with multiple files, but here is one:
/home/rstudio/s3/HEK293T/SRR844_1.filtered.aligned.unique.bam

Hi @genec1.   I am slow on the uptake here.   Sorry.  Let me ask a few more questions.

You built igvR on an aws instance.
You start igvR from an R session on that instance.
3a) Do you ask igvR to open a websocket connection, from aws, back to a browser running on your workstation, which is local - that is, you sit in front of it
3b) Or do you start up a web browser which runs on the aws instance, which displays (via X windows, for instance) which displays back to your workstation?

You explained that you use aws because the of the large amount of data that you are working with.
When I finally understand your setup, my response is likely to be this:
o  igvR is really meant to be run only out of an R session on your local machine
o  when I have heavy processing to do, resulting in large genomic data files I want to explore, here is what I do:
1) set up a simple byte-range/CORS webserver on the compute server (your aws instance)
2) create and write your big data, indexed bam, vcf, cram etc files there
3) visualize them through the local igvR
It take a little effort to set up the byte-range/CORS webserver, but only a little.  I could help with that.

Paul

On Jan 31, 2022, at 11:39 AM, genec1 @.***> wrote:
No problem. I'm working with multiple files, but here is one:
/home/rstudio/s3/HEK293T/SRR844_1.filtered.aligned.unique.bam
—
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 commented.

1 + 2 + 3a
Specifically, I am coding in a local web browser running RStudio, backed by rstudio-server on the AWS instance.  When I initiate igvR in my R session, a new window opens in my local web browser showing IGV.  This new window correctly shows the reference genome, but cannot show the programmatically loaded bam data since that is not on localhost relative to my browser session.
As a stopgap, I have been region-filtering the bams on AWS, sftp'ing them to my local machine, and opening them in a local IGV app.  This is cumbersome for multiple bams with multiple regions.  If you can point me to the byte-range/CORS server info, that would be appreciated!

@genec1
I have a presentation to give tomorrow, so today I can only give you  quick & dirty  instructions on creating a python flask webserver for serving up indexed genomic files, bam and vcf, for instance.   I will polish these up by the end of the week and add them to this repo's README.   I hope the following gets you going.  Let me know:

python >= version 3
two extra modules:  Flask and flask_cors
your webserver app, which I call serveStaticGenomeFiles.py:

from flask import Flask
from flask_cors import CORS
app = Flask(__name__, static_url_path='/static')
CORS(app)
@app.route('/')
def serveStaticFiles():
    return 'CORS and byte-range request flask webserver  for igvR\n'

if __name__ == "__main__":
    app.run(host='<IP_ADDRESS>', port='60050')

adjust the port to something appropriate
run the python script with your files in /static of whatever path you specify when you construct the ```app``

I run all of this out of Docker container, and will document that as well.
I hope this quick description is helpful.   I will incorporate your judgement, and appropriate improvements, when I have a chance to do this later in the week.

This is very much appreciated!  I do not have the time to try it at the moment, but will give it a go in a week or two.

@genec1 I think I have figured out a few changes needed to run igvR from a remote RStudio (or plain R) session.  I will be testing in the next few days.   I hope this will be useful to you.

@genec1
igvR 1.15.8  and   BrowserViz 2.17.1 just passed all tests for me, running in a remote RStudio Server session.
Give it a try?

Glad this worked out!  Let me know if you have other suggestions.

Paul

On Mar 1, 2022, at 4:39 PM, genec1 @.***> wrote:
@paul-shannon I can confirm that it works with the GitHub versions when using the host parameter and running on a remote host. Awesome!
—
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 were mentioned.


Need to input API key at each query, despite setting API key using command

Just a quick issue to document. Maybe I'm doing something wrong but I can't get the extension to remember my API key.

@quadrismegistus Thanks for the feedback!
Please clarify, do you need to enter the API key every time you restart vscode or every time you generate a docstring?
Could you give the output of the extension after setting the API key:

Press Ctrl+Shift+U
Select "ChatGPT: Docstrings Generator" channel

Here's the channel output, before and after running the Set OpenAPI Key command. That command appeared to make no effect on the output; not sure if it actually runs.
2023-07-09 12:24:40.349 [info] Used ChatGPT prompt:
Create docstring in google format for python function below, adding examples if the function is complex:
def testing(x):

    print(x)
2023-07-09 12:24:42.133 [info] Received ChatGPT docstring:
def testing(x):
    """
    Prints the value of x.

    Args:
        x: The value to be printed.

    Returns:
        None

    Examples:
        >>> testing(5)
        5
        >>> testing("Hello")
        Hello
    """
    pass
2023-07-09 12:24:51.769 [info] Used ChatGPT prompt:
Create docstring in google format for python function below, adding examples if the function is complex:
def testing(x):

    print(x)
2023-07-09 12:24:53.521 [info] Received ChatGPT docstring:
def testing(x):
    """
    Prints the value of x.

    Args:
        x: The value to be printed.

    Returns:
        None

    Examples:
        >>> testing(5)
        5
        >>> testing("Hello")
        Hello
    """
    pass

@quadrismegistus The extension uses SecretStorage to store the OpenAI API key. The author of the SecretStorage API says it is built on http://github.com/atom/node-keytar.

A native Node module to get, add, replace, and delete passwords in system's keychain. On macOS the passwords are managed by the Keychain, on Linux they are managed by the Secret Service API/libsecret, and on Windows they are managed by Credential Vault.

Perhaps the problem lies in the limitations of your OS. In the latest release of the extension, I added logging of the API key saving error, if such occurs. Please update the extension and re-view the output. Perhaps the reason will become clear.

Thanks for your help. I re-installed the extension (wasn't sure how else to ensure it had updated), and then restarted VSCode, ran "Set API key" command and then ran a "Generate docstring command". The Set API key command still made no effect on the logs (though there may have been no error?). The "generate docstring" command then asked me for my key again at which time it sent the request to the server and gave back the response. Subsequent use of "generate docstring" asks for API key again.
I wonder if there's a way one could provide a path or set an environment variable as an alternative way of storing the key?
Here's the full output of the debug console:

2023-07-12 04:03:25.612 [info] Name: ChatGPT: Docstring Generator
2023-07-12 04:03:25.612 [info] Module: chatgpt-docstrings
2023-07-12 04:03:25.612 [info] Python extension loading
2023-07-12 04:03:25.612 [info] Waiting for interpreter from python extension.
2023-07-12 04:03:25.612 [info] Python extension loaded
2023-07-12 04:03:25.612 [info] Server run command: /Users/ryan/github/geotaste/venv/bin/python /Users/ryan/.vscode/extensions/oliversen.chatgpt-docstrings-0.2.1/bundled/tool/lsp_server.py
2023-07-12 04:03:25.612 [info] Server: Start requested.
2023-07-12 04:03:26.429 [info] CWD Server: /Users/ryan/github/geotaste
2023-07-12 04:03:26.429 [info] sys.path used to run Server:
   /Users/ryan/.vscode/extensions/oliversen.chatgpt-docstrings-0.2.1/bundled/libs
   /Users/ryan/.vscode/extensions/oliversen.chatgpt-docstrings-0.2.1/bundled/tool
   /Users/ryan/github/parasolr
   /Users/ryan/github/geotaste
   /Users/ryan/.pyenv/versions/3.10.7/lib/python310.zip
   /Users/ryan/.pyenv/versions/3.10.7/lib/python3.10
   /Users/ryan/.pyenv/versions/3.10.7/lib/python3.10/lib-dynload
   /Users/ryan/github/geotaste/venv/lib/python3.10/site-packages
2023-07-12 04:03:26.430 [info] Settings used to run Server:
[
    {
        "cwd": "/Users/ryan/github/geotaste",
        "workspace": "file:///Users/ryan/github/geotaste",
        "interpreter": [
            "/Users/ryan/github/geotaste/venv/bin/python"
        ],
        "openaiModel": "gpt-3.5-turbo",
        "docstringFormat": "google",
        "chatgptPromptPattern": "Create docstring in {docstring_format} format for python function below, adding examples if the function is complex:\n{function}"
    }
]

2023-07-12 04:03:26.430 [info] Global settings:
{
    "cwd": "/",
    "workspace": "/",
    "interpreter": [],
    "openaiModel": "gpt-3.5-turbo",
    "docstringFormat": "google",
    "chatgptPromptPattern": "Create docstring in {docstring_format} format for python function below, adding examples if the function is complex:\n{function}"
}

2023-07-12 04:03:36.810 [info] Used ChatGPT prompt:
Create docstring in google format for python function below, adding examples if the function is complex:
def analyze_contingency_tables(
        vals1,
        vals2,
        funcs = [odds_ratio, fisher_exact],
        sort_by='odds_ratio',
        p_col='fisher_exact_p',
        sort_asc=True,
        min_p=MIN_P,
        signif=False):

    vals1=pd.Series(vals1)
    vals2=pd.Series(vals2)
    index_name='__'.join(sorted(list(set([vals1.name, vals2.name]))))
    ld=[]
    vals_ctbls = list(iter_contingency_tables(vals1, vals2))
    for val,ctbl in vals_ctbls:
        val_d = {
            'value':val,
            **table_info(ctbl)
        }
        for func in funcs:
            res = func(ctbl)
            method=func.__name__
            stat=res.statistic if hasattr(res,'statistic') else None
            pval=res.pvalue if hasattr(res,'pvalue') else None
            if stat is not None: val_d[f'{method}'] = stat
            if pval is not None: val_d[f'{method}_p'] = pval

        ld.append(val_d)
    df = pd.DataFrame(ld)
    if len(df):
        df=df.set_index('value')
        if signif and p_col: df = df[df[p_col]<=min_p]
    df = df.rename_axis(index_name)
    df = df.sort_values(sort_by, ascending=sort_asc) if sort_by and len(df) else df
    return df

2023-07-12 04:03:48.640 [info] Received ChatGPT docstring:
```python
def analyze_contingency_tables(
    vals1,
    vals2,
    funcs=[odds_ratio, fisher_exact],
    sort_by='odds_ratio',
    p_col='fisher_exact_p',
    sort_asc=True,
    min_p=MIN_P,
    signif=False
):
    """
    Analyzes contingency tables created from two input value series.

    Args:
        vals1 (pd.Series): The first value series.
        vals2 (pd.Series): The second value series.
        funcs (list, optional): List of statistical functions to apply to each contingency table. Defaults to [odds_ratio, fisher_exact].
        sort_by (str, optional): The column to sort the resulting DataFrame by. Defaults to 'odds_ratio'.
        p_col (str, optional): The column containing p-values. Defaults to 'fisher_exact_p'.
        sort_asc (bool, optional): Whether to sort the DataFrame in ascending order. Defaults to True.
        min_p (float, optional): The minimum p-value threshold. Defaults to MIN_P.
        signif (bool, optional): Whether to filter the DataFrame by p-value threshold. Defaults to False.

    Returns:
        pd.DataFrame: The resulting DataFrame containing the analyzed contingency tables.

    Examples:
        >>> vals1 = pd.Series([1, 2, 3, 4, 5])
        >>> vals2 = pd.Series([6, 7, 8, 9, 10])
        >>> analyze_contingency_tables(vals1, vals2)
        # Output:
        #   value  odds_ratio  fisher_exact  fisher_exact_p
        # 0     1         NaN           NaN             NaN
        # 1     2         NaN           NaN             NaN
        # 2     3         NaN           NaN             NaN
        # 3     4         NaN           NaN             NaN
        # 4     5         NaN           NaN             NaN
    """
    # Function body is omitted
    pass

Note: The examples provided are for illustrative purposes only and may not reflect the actual output of the function.

I apologize for the delay in reply. Obviously, the problem is either VSCode or the node-keytar package that it uses to store secrets. I suggest checking node-keytar directly. To do this, I created a simple script that first saves the secret, then gets.

Clone the repository
Run npm install
Run npm start

"qwerty" should be displayed in the terminal.

In the new release (0.3.1), I added saving the key to memory. Now you don't need to enter the key every time you generate a docstring. However, since it is not stored in SecretStorage, you will need to enter the key again after each restart of VSCode.
I will still ask you to run the script from my previous message to understand why it is not stored in your SecretStorage.


Importing projects from CHANGE API in our staging

Hey team! Please add your planning poker estimate with ZenHub @CarlosQ96 @mohammadranjbarz

To test this, go into the adminbro:
Enter Third Party Project Imports link to the left. It will take you to this page where you will be able to create a new import from the changeAPI.

This project should be visible in the site. To import the project write the exact title or IEN from the change website. Example:
https://getchange.io/nonprofit/?address=D1XBJG85gs7DT43TraBBpUiLpDBQ8zrTLyjneP5onaWw
Title: Electronic Frontier Foundation
The EIN is on the bottom of the page:

Form:

Project duplication is not allowed. Honestly this is pointing to prod projects because there is no staging on the changeAPI.
I wrote some tests for testing donations.

@MoeNick you can search more projects in this link https://getchange.io/nonprofit/?address=D1XBJG85gs7DT43TraBBpUiLpDBQ8zrTLyjneP5onaWw in the search bar.
And import them.
I think this is ready to be merged after testing in staging.

Good job @CarlosQ96 Thanks
The funny thing is we say it's a GivingBlock project on our UI. Like this:
https://giveth-dapps-v2.vercel.app/project/alzheimers-association
Do we set proper Org config for them?


Metric and gauge support

Updates: #940

cc @fabxc

Can you split this PR into multiple ones? It would be easier to have a PR only with APIs and once we agree on them, implementation can follow.

Going to split this up as requested


Add King Edwards College, Nuneaton

https://ke6n.ac.uk/
Offers A-level computer science (3rd level of education, years 12-13, 16+, UK)
https://ke6n.ac.uk/course/computer-science/

@tyhdefu First stage of verification passed, official domain is ke6n.ac.uk as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@tyhdefu Thank you for your patience while waiting for a review and processing your request. Pull request merged.


[Circletracer] Add a file to load two different JSONs

This file allows you to load two JSON files that you want to compare.
Also, It shows the rate of change based on the duration on the imported JSON files.
ONE-vscode-DCO-1.0-Signed-off-by: Donggil Lee<EMAIL_ADDRESS>

from draft #179
from issue #66.

Please check https://github.com/Samsung/ONE-vscode/pull/236#discussion_r721940011

Cause of out of office today, so I'll take @CODe1995 out of the review.

I close this conversation. Because there are so many things to fix...T.T


Move version info out of publish container

### Tasks
- [x] Consider alternatives to publish container for version info, such as static websites
- [ ] Redirect links to version info

Static websites has the downside of not working when anonymous blob access is disabled for the storage account.
Instead, I'm opting to configure an Azure Front Door profile, which makes certain resources available via CDN. I've successfully tested links going through this CDN, including with disabling anonymous blob access disabled.

According to this documentation page, static websites should work even with anonymous blob access enabled. From further testing, that seems to be the case.
So here's what we'll do:

Move all version information and extensions to the static websites ($web) container.
Create an Azure Front Door profile with routes to version info and extensions and a base WAF configuration. This adds caching support and another level of protection.
Update the AKA links to use the Front Door endpoints.
Disable anonymous blob access in the storage account.
Let simmer for a few days to make sure everything still works.


How to create a realm in custom file directory?

Imitating the official sample code in doc, I configurate following this:
+ (void)setDefaultRealmForUser:(NSString *)userName userId:(NSString *)userId {

    RLMRealmConfiguration *defaultconfig = [RLMRealmConfiguration defaultConfiguration];
    defaultconfig.fileURL = [[[[defaultconfig.fileURL URLByDeletingLastPathComponent] URLByAppendingPathComponent:[userName stringByAppendingString:userId] isDirectory:YES] URLByAppendingPathComponent:userName] URLByAppendingPathExtension:@"realm"];
    [RLMRealmConfiguration setDefaultConfiguration:defaultconfig];
}

it works fine, but when I use [RLMRealm defaultRealm] or [RLMRealm realmWithConfiguration:realmConfigurarion error:nil] to get RLMRealm instance, crash and log
Terminating app due to uncaught exception 'RLMException',
reason: '/Users/kiben/Library/Developer/CoreSimulator/Devices/1C00477C-EEE5-4B2B-A61C-9CD5EEEE3D73/data/Containers/Data/Application/130EC6F1-A3D7-4B30-B272-90C8D009C7DC/Documents/Jimmy7518338/Jimmy.realm.management:
Unable to open a realm at path '/Users/kiben/Library/Developer/CoreSimulator/Devices/1C00477C-EEE5-4B2B-A61C-9CD5EEEE3D73/data/Containers/Data/Application/130EC6F1-A3D7-4B30-B272-90C8D009C7DC/Documents/Jimmy7518338/Jimmy.realm.management': make_dir() failed: No such file or directory.'

The directory in which you're creating the Realm file must already exist. Your code does not appear to do anything to guarantee this.

So.... I need to manually create a realm file before configuration? And then the realm file just only appear at /Documents/xxxx.realm ?

You must create the directory that you wish to contain the Realm file. Realm will create the file itself, but will not create any intermediate directories.
From your exception message, the Realm you're trying to open is at …/Documents/Jimmy7518338/Jimmy.realm. You need to ensure that the directory …/Documents/Jimmy7518338 exists before you can open that Realm.

Ohhhh.... The directory.... Thanks, it works.


Undocumented "dynamic variable" $(build.containerId)

When publishing artifacts in a build pipeline you can get the container id it was published to by using the variable $(build.containerId) which is not documented as far as I can see.
Is the documentation lacking a section on "dynamic variables"?
This variable is useful within the build itself enabling generation of the URLs to specific files in the published build artifact, you can generate the same URL that will be available in the Azure DevOps UI if you manually click a build's "Artifacts Explorer" -> "Copy download URL" option.

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

ID: 9ffebdc8-521c-44b5-cde4-4abdc1bd6f18
Version Independent ID: dc0effda-6d93-62aa-64c5-4e6f283b0826
Content: Predefined variables - Azure Pipelines
Content Source: docs/pipelines/build/variables.md
Product: devops
Technology: devops-cicd
GitHub Login: @juliakm
Microsoft Alias: jukullam

@jan-kenneth  Thank you for the question, assigning this to the author for review.

I'm working on getting clarification from the product team on$(build.containerId).


adapte the types with the new changes in ultradom 3.0

@jorgebucaran if you have some question let me know.

Codecov Report

Merging #112 into ultracalifragilisticexpialidocious will not change coverage.
The diff coverage is n/a.

@@                        Coverage Diff                         @@
##           ultracalifragilisticexpialidocious    #112   +/-   ##
==================================================================
  Coverage                                9.77%   9.77%
==================================================================
  Files                                      12      12
  Lines                                     133     133
  Branches                                   44      44
==================================================================
  Hits                                       13      13
  Misses                                     79      79
  Partials                                   41      41

Continue to review full report at Codecov.

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

🎉


fix cursor.go

Hi, we are using the library to read and write orc files.
We've noticed an issue about "orc/cursor.go:85" 's comparison processing between currentRow and stripeRow Count.
Seems like there is no chance for currentRow's data to be reset, so if the file has more than 2 stripe, all the objects comming after the first one won't be read out. We've already done with the program modification which the data will return to be 0 in Stripes(), so if you don't mind, could you please merge it?
Thank you.

Thanks for the contribution, this has been merged.


Limit error retries

Note: for support questions, please join our Discord server

I'm submitting a ...
[X] bug report
[ ] feature request
[ ] question about the decisions made in the repository

Action taken (what you did)
Run gekko for a few days on BitFinex with screen -dr

Expected result (what you hoped would happen)
Retries on error for a few times before giving up on a particular invalid action

Actual result (unexpected outcome)
Receive "Bitfinex returned an error, retrying..." messages continuously, possibly because it was constantly trying to perform an action that is no longer valid. And also, these error messages will accumulate in amount, growing larger and displaying them every few moments.

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)
I'm not sure which action is causing the error, but I suspect it's due to race conditions, gekko attempting to do something but the action is no longer valid. In any case, there are no set limits on error retries, so if gekko attempt to perform the invalid action, it will get an error and then it will retry again and again, resulting in gekko retrying forever.

I just noticed that a couple of hours ago with bitfinex also. Limit orders dont execute anymore but it worked fine since the 9th until 19th. It returns for me buy order failed to fill full order, cancelling and retrying and then it simply throws an error of buy amount less than minimum even though it never filled any partial order and the failed order amount is some random btc amount notwhere close to my full value to purchase.

@askmike I've been giving some thought to this problem in general, related to other Kraken issues we've look at recently. This is what I think we could do

limit retries to 1 per api call, except buy/sell/cancel
add retries to a queue and have the queue processed with a delay in between (prevent api rate limits triggering further retries)

The only issue of course is that it would have to be implement per exchange, unless we change the exchange API to centralize higher level retry behaviour. Off the cuff I think this would imply returning promises from each API function instead of using callbacks, adding a new exchange function to check if a retry should be attempted on a particular result, have an exchange parameter to define the API retry rate.
Any thoughts?


[Delete-User-Data] Support for multiple Realtime database instances

[REQUIRED] Step 2: Extension name
This feature request is for extension: _ (delete-user-data)
What feature would you like to see?
It would be awesome if you could enter more than one realtime database instance
How would you use it?
That would allow me to delete all of our user data - from all realtime database instances.

Hi @zigapovhe.
Our recommendations for this type of scenario are to install multiple instances of the extension.
Each instance can then contain the specific configuration needed, so in this case a second installation can include your secondary database instance.

@dackers86 Oh, I didn't know that. Thanks! But is it planned to support multiple instances of realtime db in the future?


Scheduled scan runs after an edit and changing the scan to a one time scan

On 2.5-head - commit id: baf4867 with latest cis v2 charts: rancher-cis-benchmark:1.0.300

Create a scan CR.
Enable Scheduled scan . Cron - * * * * * and Retention:3 (any), profile: Any
Scan runs and completes. The next scan is scheduled to happen.
Edit the scan CR and change it to "One time" Scan run and save changes made
The next scheduled scan still runs, and then the scheduled scan is "disabled" no more scheduled scan runs.

Questions:

Is this behavior expected?
When a scheduled scan is edited and made into a one time scan run, do we need to run the next scheduled scan?

This is as expected, the scan object has been scheduled earlier and queued to run after a certain time instant, at which point kubernetes controller will invoke the run. After this run however no next run will get scheduled since the scan config is changed.

@sowmyav27 can you close this if you are fine with Prachi's explanantion?

Closing the issue based on comments


Nested customType are not supported

Environment information
System:
    OS: macOS 13.6
    CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
    Memory: 229.59 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.18.2 - ~/.nvm/versions/node/v18.18.2/bin/node
    Yarn: Not Found
    npm: 9.8.1 - ~/.nvm/versions/node/v18.18.2/bin/npm
    pnpm: Not Found
    bun: Not Found
    Watchman: Not Found
  npmPackages:
    @aws-amplify/backend: ^0.6.0 => 0.6.0
    @aws-amplify/backend-cli: ^0.9.1 => 0.9.1
    aws-amplify: ^6.0.5 => 6.0.5
    aws-cdk: Not Found
    aws-cdk-lib: ^2.110.1 => 2.110.1
    typescript: ^5.3.2 => 5.3.2

Description
Unable to nest custom type.
const schema = a.schema({
Prompt: a.customType({
text: a.string().required(),
weight: a.integer().required()
}),
Configuration: a.customType({
prompts: a.ref('Prompt').required(),
...
prompts type is not recognized.
error TS2322: Type 'RefType<SetTypeSubArg<RefTypeArgFactory<"Prompt">, "required", true>, "required", undefined>' is not assignable to type 'ModelField<ModelFieldTypeParamOuter, CustomTypeAllowedModifiers, any>'.
Property 'default' is missing in type 'Omit<{ required(): RefType<SetTypeSubArg<SetTypeSubArg<RefTypeArgFactory<"Prompt">, "required", true>, "required", true>, "required", undefined>; authorization<AuthRuleType extends Authorization<...>>(rules: AuthRuleType[]): RefType<...>; }, "required"> & { ...; } & { ...; }' but required in type 'Omit<{ required(): ModelField<string | number | boolean | object | any[] | Date | ModelFieldTypeParamInner[], CustomTypeAllowedModifiers, undefined>; array(): ModelField<...>; default(value: ModelFieldTypeParamOuter): ModelField<...>; authorization<AuthRuleType extends Authorization<...>>(rules: AuthRuleType[]): Mod...'.

Hey @ubiqart, Thank you for highlighting this. We've successfully replicated the issue, thus marking it as a bug for the team to further assess.

I'm having this issue as well. Another scenario to check is that this doesn't work even if the nested type is a model instead of a customType. See my example below.
const schema = a.schema({
  Player: a.model({
    id: a.string()
  }),
  Team: a.customType({
    id: a.string(),
    name: a.string(),
    alias: a.string(),
    players: a.ref('Player')
  }),
  Games: a
    .model({
      id: a.string(),
      year: a.float(),
      game_type: a.string(),
      week_num: a.float(),
      status: a.string(),
      scheduled: a.string(),
      home: a.ref('Team'),
      away: a.ref('Team'),
    })
    .authorization([a.allow.owner()]),
});

It seems nested custom types are supported in Gen 1.
I was able to compile and deploy the schema in Gen 1
type Prompt {
  text: String!
  weight: Int!
}

type Configuration {
  prompt: Prompt!
}

This has now been fixed.
Please upgrade to the following amplify dependencies to start using this feature:
"dependencies": {
    "aws-amplify": "^6.0.19",
    ...
},
"devDependencies": {
    "@aws-amplify/backend": "^0.13.0-beta.4",
    "@aws-amplify/backend-cli": "^0.12.0-beta.4",
    ...
}

This is great thanks, I wound up using Gen1 but I would love to switch back to Gen2 soon. Thanks for fixing this. @iartemiev


Simplify the Distribution Matrix for Linux Installers.

#499 kicked off a fun discussion in the PMC:
In essence, it isn't feasible for us to support the proliferation of Linux Distributions.  However, we can through tooling and documentation make sure that folks who use a Linux distribution can easily install our packages.
As an example for Red Hat based distribution in our linux/Jenkinsfile we have something like:
'redhat' : [
            'rpm/centos/7',
            'rpm/rocky/8',
            'rpm/rhel/7',
            'rpm/rhel/8',
            'rpm/rhel/9',
            'rpm/fedora/35',
            'rpm/fedora/36',
            'rpm/oraclelinux/8',
            'rpm/amazonlinux/2',
            'rpm/oraclelinux/7'
        ],

Current thinking is to:

symlink everything that isn't rpm/rhel/ to their equivalent rpm/rhel/ to retain existing compatibility.

Update the website documentation on how to use the rpm/rhel/<version> for a user's specific Linux distro. This would include not "don't recommend the specific distro name", but use correct rhel/<version> instead, and provide a mapping table.

e.g. If you're using Fedora 36 then that maps to rhel version 8 (or whatever)
Originally posted by @karianna in https://github.com/adoptium/installer/issues/499#issuecomment-1183208458

It would be best to avoid rhel, IMO. Those RPMs are generic RPMs not specific to any distro in the above list (including rhel). Considering generic-centos-derivatives would be the chosen name, then we should publish to rpm/generic-centos-derivatives/1 and symlink others to it.
The version is really an generic-centos-derivatives version, since it currently works for the above list, but might change if at some point a dependency's name changes (or more generically we need to make a incompatible change to the RPM spec which produces RPMs for the above). So the version thing is future-proofing for that case.

Any news regarding this topic?

Hasn't been discussed for awhile I'm afraid

Noting also that since we have a split between redhat and suse pacakges in the repository we would not be able to completely unify these.


Can we use BrowsingContext to get Images?

I want to get a captcha using the same context I used to get the page (requires cookies to be kept). Is that possible? Or I have to use C# HttpRequest to implement it?

Yes of course its possible, just active the download of resources (by default only documents are downloaded from the requester).
var config = Configuration.Default.WithDefaultLoader(loader =>loader.IsResourceLoadingEnabled = true);
// use this config

Hope this helps!

How can I get binary of an image? For example I want to get http://xxx.xxx/verifycode.php (MIME: image/gif), how do I get a byte[] for that gif instead of decoded string?

The following code is an example of what you want to achieve:
void Main()
{
	var imageLoaderService = new PlainImageResourceService();
	var configuration = Configuration.Default.WithDefaultLoader(m => m.IsResourceLoadingEnabled = true).With(imageLoaderService);
	var context = BrowsingContext.New(configuration);
	var document = context.OpenAsync(res => res.Content("<img src='https://static1.squarespace.com/static/52a05cf6e4b03ec9dbc58f7d/52a05e5be4b0bdf80ef886d6/54ddd59ee4b0dc86d09f357f/1430902457710/?format=20w'>")).Result;
}

sealed class PlainImageResourceService : IResourceService<IImageInfo>
{
	public bool SupportsType(String type)
	{
		return type == "image/png";
	}

	public async Task<IImageInfo> CreateAsync(IResponse response, CancellationToken token)
	{
    	var target = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "foo.png");

		using (var fs = File.Create(target))
		{
			await response.Content.CopyToAsync(fs);
		}

		return new ImageInfo { Source = response.Address, Width = 0, Height = 0 };
	}
}

sealed class ImageInfo : IImageInfo
{
	public Int32 Width { get; set; }

	public Int32 Height { get; set; }

	public Url Source { get; set; }
}

This does something (here: saving the image) automatically with the given response. More directly, you could disable automatic resource downloading and perform the download manual for the images you are interested in.
The shown approach works nice if you want to apply it to any image in the document (or to images restricted to a certain URL), but works terrible if you only want to have the automatic download for one specific image element (as the element is currently not delivered).
Hope this helps!


Can't resolve types from actions-on-google api

Hi,
i'm trying to compile a new project based on this one, which uses actions-on-google 1.7.0 from maven.
I can't solve some types such as
ExecuteRequest.Inputs.Payload.Commands.Execution    (but ExecuteRequest.Inputs exists)
ExecuteResponse.Payload.Commands  (but ExecuteResponse.Payload exists)
Any idea why?

That seems unusual. There's been no changes to the classes in many release cycles, and I had just had built the sample successfully a few days ago. Can you explicitly import the class at the top?

It was an Eclipse Photon problem, I don't understand why but it suggested the needed class import but once added it said it didn't exist.
Tried to clean: eclipse project, clean maven project, clean local maven repository and looking for Eclipse updates.
Then i installed the 2019-09 version, imported the project and now it works.
Thank you Fleker for you feedback


Wallet: Make sure settings file writes are atomic

See Preload.re: We can fix by doing a write to a temp file, then copying the file over after the write is done.

new plan: replace settings file with localstorage

This is done now


refactor svg into ES6 modules for #3118

Also moved functions from js/id/svg.js into their own modules.

👍 Awesome, thanks! I owe you two cups of coffee next time I'm in Seattle


Confirm about the license field

Hi, I'm a member of cdnjs, and we want to add this library to our server.
Inside package.json#59
The license field is Facebook's BSD-3-clause.
Is this library is also BSD-3-clause?

yup!

Great! I'll add this library ASAP!


Automatic conversion of post-body

Hello there! Love robohydra, it's been an invaluable tool for me lately :-)
The standard way to handle post-body is to return it as a rawBody property on the request object. Of course this is most flexible, but I wonder if there is any reason why we don't automatically parse it if a given header is present:
For example: A request with the "content-type: application/json" header could provide some ready-to-use-json inside the request object.

Thanks, glad it's useful :-) Can I ask what you use it for?
You're right, JSON parsing is common enough that it should probably be granted special treatment. I want to keep rawBody as-is but in the same way we have bodyParams, I can maybe add jsonBody or similar.
Want to give it a shot, or should I try to implement it?

Exactly as I thought!
Using it to mock (mostly static data) an existing API for testing purposes. Recently been using it to do really quick POCs for new features so clients have something to build against without the need for a production-scale backend to be finished already. Works really well for both use-cases. Planning to investigate the client-testing functionality, though it will probably have to wait a while.
I'd like to contribute, so I'll see if I can get this done soon :-)

Cool. Do you have a single installation for all clients, or do they run their own private RoboHydra? If the latter, have you used scenarios? I think it's one of the coolest features but I have the impression that people don't know it or understand it. If it's the former, you can still do it with summoners, but it's harder.
Looking forward to your patch!

Single installation, running inside a docker container, behind nginx (as a reverse proxy). Works great! Some devs choose to run it locally, but that's only because it's a lot faster (~1ms vs ~200ms response times), since the host machine is currently overseas.
We're using summoners, implemented like your example - where you use a header to call a specific hydra. It was actually very easy, just have to get the clients to generate a random ID on startup (using 10-digit alphanumeric iirc).
I haven't really setup scenarios, but it's something we'll be looking at soon I think. It wasn't the lowest-hanging fruit and we have some quite non-trivial flows.
The patch is mostly in place, it got... slightly bigger than planned. I still want to try to make it easier to read, and write tests before I submit it though.


Don't Lose Exception Details When Wrapped Into com.google.api.gax.rpc.InvalidArgumentException

With DEBUG logging on for com.google.ads.googleads.lib.request.detail I can see the following request and response:
Request
-------
MethodName: google.ads.googleads.v4.services.GoogleAdsService/SearchStream
Endpoint: googleads.googleapis.com:443
Headers: {developer-token=REDACTED, login-customer-id=ABC, x-goog-api-client=gl-java/1.8.0_161 gapic/ gax/1.57.0 grpc/1.30.0}
Body: customer_id: "XYZ"
query: "select customer.id, campaign_budget.id, metrics.cost_micros, metrics.clicks, metrics.conversions, metrics.impressions, campaign_budget.period, campaign_budget.reference_count, campaign_budget.amount_micros, campaign_budget.name from campaign_budget where segments.date   DURING   THIS_MONTH "

Response
--------
Headers: Metadata(content-type=application/grpc,request-id=wKbcK0j7Cw3Kkp-CdTm8zQ,date=Sat, 05 Sep 2020 14:47:42 GMT,alt-svc=h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43")
Body: null
Failure message: errors {
  error_code {
    query_error: REQUESTED_METRICS_FOR_MANAGER
  }
  message: "Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account."
}

However this gets wrapped into a thrown exception of com.google.api.gax.rpc.InvalidArgumentException and as far as I can tell there's no way to unpack this exception to get any valuable details ie.:
detailMessage : io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Request contains an invalid argument.

The true error should be exposed in the thrown Exception so adequate handling may be done.
Thanks
Pete
Java Client Library : com.google.api-ads:google-ads:8.0.0

Thanks for reporting. It looks like we're missing a few cases in GrpcGoogleAdsExceptionFactory. Rather than spend time hacking them into that pattern it seems like it would be better to update GAX (middleware) to allow us to customize the exception mapping. I'll file a PR with GAX shortly to address this and follow up with a change to the Java library to provide a custom mapping.

Created googleapis/gax-java#1178 to expose an interface for hooking into the GAX ApiExceptionFactory code. This will allow us to override the exception returned in one place for all call types.

And googleads/google-ads-java#336 has the ads API side of the GAX change.

This is now fixed in master and will be in the next release.


RPromise class not found

@mrniko.
We are trying to upgrade Redisson version from 3.10.2 to 3.22.0, but we can't find this RPromise class in this new version. So, the code written using 3.10.2 is throwing error as its not able to find this class. Can you please help to let us know what alternative we can use and how to use it? We would also like to know how to replace PPromise usage in our code.
It would be great if you can help to point out to any resources mentioning this transition as I can't seem to find anything regarding the removal of this class. I can see that this class was removed in 3.17.2 version, but the changelog doesn't mention it.
I would also like to know regarding the alternatives for  Node and RedisNodes classes. We are using these to perform the health check. These classes are marked as deprecated, but I can't seem to find any mention of alternatives for these classes. It would be great if you can help us as we are not able to upgrade the version.

We are trying to upgrade Redisson version from 3.10.2 to 3.22.0, but we can't find this RPromise class in this new version

RPromise was an internal call. Replaced with CompletableFuture,

I would also like to know regarding the alternatives for Node and RedisNodes classes

Use org.redisson.api.RedissonClient#getRedisNodes() instead

@mrniko .. Thank you for replying! I understand that you might be busy, but it would be great if you can have a look at the code below and suggest us on how can we proceed with this. These are the errors we get in the class file after we change the Redisson version to 3.2022.0

@dineshmadhwal hello, have you solve this problem? we meet this error in our codes also


create mr-video tag

similar to mr-img but for video

resolved by

https://github.com/Volumetrics-io/mrjs/pull/436

https://github.com/Volumetrics-io/mrjs/pull/464


adding subfolder homepage types to IndexDocument

This PR adds in the API options necessary to enable and configure the Subfolder Homepage options for static websites on OSS. These options don't seem to be documented anywhere in the API docs, but you can see the options in the Alicloud OSS UI, and if you look at the XML responses from the API you'll see they exist. I had to reverse-engineer how this works; This should be added to the API docs.

Without adding these options, every time SetBucketWebsiteDetail is called it just deletes the subfolder homepage settings on the OSS bucket.

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

Just realized there's another open PR addressing this: https://github.com/aliyun/aliyun-oss-go-sdk/pull/265. Feel free to close this if you'd rather merge that instead.


fix: replace hard-coded template.yaml with code generated json file

What was the problem/requirement? (What/Why)
We are having a hard-coded template.yaml in the job template folder. It is not as easy as using a json file in submitter development to make the template update very flexible.
What was the solution? (How)
Changed to use code generated json job template.
What is the impact of this change?
Will be very flexible for future job template operations.
How was this change tested?
Manual submitted job with mov output and image sequence output.
Was this change documented?
N/A
Is this a breaking change?
N/A
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Can we keep the template in a separate file? The main reason why I made it a separate file in the first place was to make it easier to find and edit. The LSP I was using didn't recognize the .jsx file format, but it was able to help with formatting and highlighting errors in .yaml files. If a user ever wants to add their own pre or post steps, I think it's a lot easier to figure out what to do if there's a separate file that they can edit if they know OpenJD.
I do like the idea of switching from yaml to json to make it easier to make changes through code though. I just don't want to give up the ease of making changes by hand.

Can we keep the template in a separate file? The main reason why I made it a separate file in the first place was to make it easier to find and edit. The LSP I was using didn't recognize the .jsx file format, but it was able to help with formatting and highlighting errors in .yaml files. If a user ever wants to add their own pre or post steps, I think it's a lot easier to figure out what to do if there's a separate file that they can edit if they know OpenJD.
I do like the idea of switching from yaml to json to make it easier to make changes through code though. I just don't want to give up the ease of making changes by hand.

Thanks for your reply! The reason was other dcc integrations are using the same in-code json file. I can definitely move it out as a separate json file. We can also reevaluate which way is better for customers then.


Investigate error handling

What is the best way to capture errors from services and share them with the user?
In the past, each service defined a dataToError(data:) function that would try to parse error messages in the format advertised in the service's API Reference documentation. But we found that not all services adhere to that error format or use it consistently throughout the service's endpoints. And some errors (e.g. invalid credentials) aren't returned in JSON at all.
How should we return errors to our users? We should make sure it adheres to the Swift 3.0 conventions (i.e. Error protocol).

It would also be helpful to learn more about how the other Watson Developer Cloud SDKs handle errors. In particular, how do they handle changing models, non-JSON errors, and Alamofire errors? Do the other SDKs return information about the status code if it is not included in the JSON payload.


Highlight Text is not displayed - RowSettings

OpenUI5 version: 1.93.0
Chrome 92.0.4515.131
https://openui5.hana.ondemand.com/entity/sap.ui.table.Table/sample/sap.ui.table.sample.RowHighlights
Wrong understanding of the usage
Steps to reproduce the problem:
1. Hover over the Row-Highlight (Not the first four of the example! Scroll down)
2. It does not display the highlight text
What is the expected result?
Display the highlight text
What happens instead?
Nothing (Show "Click to Select" for Column selection)

Update
I thought that the highlightText is a hover text that is displayed if the user move the mouse over the highlight. But it is only for accessibility.
getHighlight()

Accessibility support is provided through the associated highlightText property

and
getHighlightText()

Defines the semantics of the highlight property for accessibility purposes.

I guess the documentation for the highlight and highlightText properties is not clear enough. It says

... Accessibility support is provided through the associated highlightText property. If the highlight property is set to a value of sap.ui.core.MessageType, the highlightText property does not need to be set because a default text is used. However, the default text can be overridden by setting the highlightText property. In all other cases the highlightText property must be set.

and

Defines the semantics of the highlight property for accessibility purposes.

When the documentation talks about "Accessibility", it refers to screen reader support. The highlightedText property is rendered as invisible text and referenced in the aria-labelledby attribute of the row selection cell. It is not a tooltip or something like that.

Yes, I just noticed it too. Maybe in the Doc can be added that it is not a tooltip.

There is no support for the tooltip, mainly because it would not be the correct answer in mobile scenarios. It is recommended to add a column that contains details about the state/highlight, if this information is required. The highlight, the visual part of the state, should attract the attention of the user.
For screen reader users, for whom visual information is usually not very helpful, it is of course a little different, hence the "highlightText".

https://experience.sap.com/fiori-design-web/grid-table/#item-states

Oh, about the documentation: I'll add the info to the "highlightText" property that it's only about screen reader support. Thanks for the hint!


Rust/Cargo: :Neomake! cargo messes up cargo...

Same setup as in previous issue I posted. I just need to say that after running :Neomake! cargo, whenever I run cargo build or cargo run again, it says Blocking waiting for file lock on build directory for a while before continuing. This message was a problem to me earlier, making strange behaviour.
I tried to grep ps aux for cargo, rust, neomake, make, etc, but it doesn't seem like :Neomake keeps running or something so that's not the problem.

cargo has a blocking feature - you can't compile the same project more than once at the same time. Because cargo checker uses cargo binary to compile the project and read possible errors/warnings any use of the maker will effectively block the 'normal' compilation of the project outside of neovim. This is not a bug, nor a feature, but rather a significant inconvenience that we are facing now.
Please check out #843 to see the upcoming changes, which will hopefully significantly reduce the time during which cargo maker blocks the compilation of the project.

So in this case using timeout or (manually) stopping the job might help?!
What is the process that locks it?

Maybe even stop it from post processing when there is no output for e.g. 2s?

The process is compilation itself. Adding timeout would probably help, but then it'd possible that maker wouldn't get any warnings, as they come up later in the process of compilation. Also you need to build the project first, in order to build the tests, so stopping too early could result in not catching errors in tests. This is not an easily fixed problem, i hope that cargo-check will aid the times and so we won't have to resort to any timeout.

Until it is resolved with cargo-check: it would already be much better if cargo build doesn't have to recompile the project right after Neomake has run cargo build (if that's what it runs for syntax checking etc). That is: Neomake should actually compile the project. Right now it is as if it spends as much time as would be required to compile the project, but doing no useful work.
Can this be done?

This issue should be resolved by #1195. @Ploppz can you get the new version and confirm that is the case?

Closing for now already, please report back / re-open accordingly.

For me and my use case, this is still an issue. If I put Neovim in the background (with Ctrl-z) shortly after a :w, a lock is created. Then I can't cargo build or cargo check until I bring Neovim back into the fg and let it finish compiling.

@jupart
Would using cargo check --tests help with that?
See https://github.com/neomake/neomake/issues/843#issuecomment-301596346 (and the one above).
Please try changing this setting.

@jupart
['check'] is the default.. please try ['check', '--test'] or whatever might not take a lock.  Is there something?
According to https://github.com/rust-lang/cargo/commit/235712f5998d223895282e5e52b228808ac02f13 it should not compile at least ("Don't implicitly compile binaries when using just --test filters.").

Indeed, that setting doesn't create a lock. Sorry for the noise!
--
Justin Partain
On Fri, Feb 16, 2018 at 9:18 AM, Daniel Hahler<EMAIL_ADDRESS>wrote:

@jupart https://github.com/jupart
['check'] is the default.. please try ['check', '--test'] or whatever
might not take a lock. Is there something?
According to rust-lang/cargo@235712f
https://github.com/rust-lang/cargo/commit/235712f5998d223895282e5e52b228808ac02f13
it should not compile at least ("Don't implicitly compile binaries when
using just --test filters.").
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/neomake/neomake/issues/847#issuecomment-366247242,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANdcxqYlCQMxHMVYL9SBHvIuWdN3gakyks5tVY5TgaJpZM4LNZlt
.


GPS position prior

OpenSfM seems to load GPS DOP values but as far as I can see, it never actually uses them. In bundle.h the lines that add a GPS position prior to the bundle adjustment objective function are commented out. Here, the DOP is used as the standard deviation which makes sense (lower DOP value -> more reliable GPS -> penalise deviation from GPS more heavily).
Is there any reason why the GPS position prior is commented out? On a dataset with reliable GPS, is it a good idea to uncomment these lines and add the GPS DOP values to the image EXIF data?

As you have seen, GPS accuracy is currently not used in OpenSfM. The EXIF reader extracts the DOP value if present, and it is stored together with the GPS position, but not used in any calculation.
The commented lines in bundle.h come from and old test and need some work to be usable. For example, as you mention, the conversion from DOP to standard deviation is missing. Also the altitude tag has to be handled better.
In datasets where SfM works well, SfM should give better precision than GPS, and using GPS for post-alignment gives good results. But optimizing for both at the same time will help in some situations where SfM alone yields globally distorted results.


OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.

when i create the envs and run the script as mentioned,  i always meet the problem like the title , i have googled the problem with no satisfied answer, would you mind giving me some suggestions ?

The env sets up CUDA_HOME, because pytorch uses that to find the nvcc
compiler (which isn't included with conda's installation of cuda, but which
is included in nvidia's standard cuda toolkits).  See the following lines
https://github.com/CSAILVision/gandissect/blob/master/script/setup_env.sh#L71-L72
But the choice of CUDA_HOME might be the wrong choice for your system - you
can try editing the same file that is created by that line to change it to
point to the parent directory that contains your installation of nvcc on
your system.
On Mon, Oct 19, 2020 at 10:13 PM zhiyuan<EMAIL_ADDRESS>wrote:

when i create the envs and run the script as mentioned, i always meet the
problem like the title , i have googled the problem with no satisfied
answer, would you mind giving me some suggestions ?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/CSAILVision/gandissect/issues/19, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2MN2D27V62CW2NQ7FVCGDSLTW4FANCNFSM4SXIKOPQ
.

thanks ,i find the problem may be because of the version of CUDA,  when i choose the proper cuda version , the problem is solved

Is this only for linux?  My system is Win, and I input torch.cuda.is_available() in anaconda then I got true. But I still have this trouble.


Docker interactions with latest Ubuntu 24.04

Describe the bug
I am running into issues running the playbook after a clean install of Ubuntu 24.04, and following Ansible + ansible-nas install instructions.  Errors occur at:

ctop not found
Remove docker-py python module
Install docker python module
(got no further)

Environment

Ansible-NAS revision (git rev-parse --short HEAD): a4773cf6

Ansible version (paste the entire output of ansible --version on the machine you run the playbook from):
ansible [core 2.16.7]
config file = /home/vincent/ansible-nas/ansible.cfg
configured module search path = ['/home/vincent/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/vincent/.local/share/pipx/venvs/ansible/lib/python3.12/site-packages/ansible
ansible collection location = /home/vincent/.ansible/collections:/usr/share/ansible/collections
executable location = /home/vincent/.local/bin/ansible
python version = 3.12.3 (main, Apr 10 2024, 05:33:47) [GCC 13.2.0] (/home/vincent/.local/share/pipx/venvs/ansible/bin/python)
jinja version = 3.1.4
libyaml = True

Ansible-NAS operating system (cat /etc/lsb-release on the Ansible-NAS box) - Support won't be provided for non-LTS releases of Ubuntu: DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04 LTS"

Ansible-NAS kernel (uname -a on the Ansible-NAS box): Linux ansible-nas 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Ansible-NAS Python version (python**3** --version on the Ansible-NAS box):
Python 3.12.3

Ansible-NAS Docker version (docker --version on the Ansible-NAS box):
Docker version 26.1.3, build b72abbb

Latest Docker logs (journalctl -u docker.service on the Ansible-NAS box):

-- Boot 5191f506d357486fa6ec9451014e03ba --
May 25 00:59:07 kronk systemd[1]: Starting docker.service - Docker Application Container Engine...
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.175742856Z" level=info msg="Starting up"
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.181508702Z" level=info msg="detected 127.0>
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.294499671Z" level=info msg="[graphdriver] >
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.296720588Z" level=info msg="Loading contai>
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.770559088Z" level=info msg="Default bridge>
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.920990411Z" level=info msg="Loading contai>
May 25 00:59:08 kronk dockerd[1159]: time="2024-05-24T22:59:08.950607825Z" level=info msg="Docker daemon">

Are you running the playbook from a remote box or the Ansible-NAS box itself?
box itself

Vagrant version, if testing (vagrant --version):

Ansible-NAS filesystems (df -hT on the Ansible-NAS box):

Mounted filesystems (mount on the Ansible-NAS box)

all.yml Variables
defaults

docker_image_directory:
docker_home:
docker_storage_driver:
samba_shares_root:

Expected behavior
The playbook should run all the way through.
Actual behavior
I get an error, and cannot track down the ctop package anywhere in apt.
bypassing that by commenting out ctop requirement, I get an error at 'Remove docker-py python module'
Steps to reproduce
Clean install of Ubuntu LTS (desktop OR server)
Install ssh access
Install ansible according to website
Install ansible-nas according to install instructions
adjust ansible-nas/inventories/kronk/group_vars/nas.yml with:
ansible_nas_hostname: ansible-nas
ansible_nas_timezone: Europe/Amsterdam
ansible_nas_user: Vincent
ansible_nas_email<EMAIL_ADDRESS>ansible_nas_domain: *.com
homepage_enabled: true
samba_shares_root: /mnt/Data0
samba_server_string: Kronk
call : ansible-playbook -i inventories/ansible-nas/inventory nas.yml -b -K from ansible-nas dir.
--> ctop error
Bypass by commenting ctop to continue,
error in "Remove docker-py python module"
Playbook Output
ctop error:
///  EXEC /bin/sh -c 'echo ~vincent && sleep 0'
 EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/vincent/.ansible/tmp"&& mkdir "echo /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323" && echo ansible-tmp-1716593323.7409317-19746-263048265079323="echo /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323" ) && sleep 0'
Using module file /home/vincent/.local/share/pipx/venvs/ansible/lib/python3.12/site-packages/ansible/modules/apt.py
 PUT /home/vincent/.ansible/tmp/ansible-local-18486ed1du23y/tmp1knpifla TO /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323/AnsiballZ_apt.py
 EXEC /bin/sh -c 'chmod u+x /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323/ /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323/AnsiballZ_apt.py && sleep 0'
 EXEC /bin/sh -c 'sudo -H -S -p "[sudo via ansible, key=rlutyhvzftztrfsynhiapzfhldrshvun] password:" -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-rlutyhvzftztrfsynhiapzfhldrshvun ; /usr/bin/python3 /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323/AnsiballZ_apt.py'"'"' && sleep 0'
 EXEC /bin/sh -c 'rm -f -r /home/vincent/.ansible/tmp/ansible-tmp-1716593323.7409317-19746-263048265079323/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
File "/tmp/ansible_ansible.builtin.apt_payload_7tjq3q8j/ansible_ansible.builtin.apt_payload.zip/ansible/modules/apt.py", line 533, in package_status
pkg = cache[pkgname]
~~~~~^^^^^^^^^
File "/usr/lib/python3/dist-packages/apt/cache.py", line 279, in getitem
raise KeyError("The cache has no package named %r" % key)
fatal: [ansible-nas]: FAILED! => {
"attempts": 3,
"changed": false,
"invocation": {
"module_args": {
"allow_change_held_packages": false,
"allow_downgrade": false,
"allow_unauthenticated": false,
"autoclean": false,
"autoremove": false,
"cache_valid_time": 0,
"clean": false,
"deb": null,
"default_release": null,
"dpkg_options": "force-confdef,force-confold",
"fail_on_autoremove": false,
"force": false,
"force_apt_get": false,
"install_recommends": null,
"lock_timeout": 60,
"name": [
"smartmontools",
"htop",
"zfsutils-linux",
"bonnie++",
"unzip",
"lm-sensors",
"ctop"
],
"only_upgrade": false,
"package": [
"smartmontools",
"htop",
"zfsutils-linux",
"bonnie++",
"unzip",
"lm-sensors",
"ctop"
],
"policy_rc_d": null,
"purge": false,
"state": "present",
"update_cache": null,
"update_cache_retries": 5,
"update_cache_retry_max_delay": 12,
"upgrade": null
}
},
"msg": "No package matching 'ctop' is available"
}
PLAY RECAP ***********************************************************************************************
ansible-nas                : ok=30   changed=0    unreachable=0    failed=1    skipped=33   rescued=0    ignored=0   \\
Remove docker error output:
\\ FAILED - RETRYING: [ansible-nas]: Remove docker-py python module (1 retries left).Result was: {
"attempts": 3,
"changed": false,
"cmd": [
"/usr/bin/python3",
"-m",
"pip.main",
"uninstall",
"-y",
"docker-py"
],
"invocation": {
"module_args": {
"chdir": null,
"editable": false,
"executable": null,
"extra_args": null,
"name": [
"docker-py"
],
"requirements": null,
"state": "absent",
"umask": null,
"version": null,
"virtualenv": null,
"virtualenv_command": "virtualenv",
"virtualenv_python": null,
"virtualenv_site_packages": false
}
},
"msg": "\n:stderr: error: externally-managed-environment\n\n× This environment is externally managed\n╰─> To install Python packages system-wide, try apt install\n    python3-xyz, where xyz is the package you are trying to\n    install.\n    \n    If you wish to install a non-Debian-packaged Python package,\n    create a virtual environment using python3 -m venv path/to/venv.\n    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make\n    sure you have python3-full installed.\n    \n    If you wish to install a non-Debian packaged Python application,\n    it may be easiest to use pipx install xyz, which will manage a\n    virtual environment for you. Make sure you have pipx installed.\n    \n    See /usr/share/doc/python3.12/README.venv for more information.\n\nnote: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.\nhint: See PEP 668 for the detailed specification.\n",
"retries": 4
}
 EXEC /bin/sh -c 'echo ~vincent && sleep 0'
 EXEC /bin/sh -c '( umask 77 && mkdir -p "echo /home/vincent/.ansible/tmp"&& mkdir "echo /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467" && echo ansible-tmp-1716593557.178456-21842-205803354970467="echo /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467" ) && sleep 0'
Using module file /home/vincent/.local/share/pipx/venvs/ansible/lib/python3.12/site-packages/ansible/modules/pip.py
 PUT /home/vincent/.ansible/tmp/ansible-local-20037ubefxai7/tmpxrfkjgdf TO /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467/AnsiballZ_pip.py
 EXEC /bin/sh -c 'chmod u+x /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467/ /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467/AnsiballZ_pip.py && sleep 0'
 EXEC /bin/sh -c 'sudo -H -S -p "[sudo via ansible, key=oxxdfkkylurdkxyosohijoqbkedfrlfk] password:" -u root /bin/sh -c '"'"'echo BECOME-SUCCESS-oxxdfkkylurdkxyosohijoqbkedfrlfk ; /usr/bin/python3 /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467/AnsiballZ_pip.py'"'"' && sleep 0'
 EXEC /bin/sh -c 'rm -f -r /home/vincent/.ansible/tmp/ansible-tmp-1716593557.178456-21842-205803354970467/ > /dev/null 2>&1 && sleep 0'
fatal: [ansible-nas]: FAILED! => {
"attempts": 3,
"changed": false,
"cmd": [
"/usr/bin/python3",
"-m",
"pip.main",
"uninstall",
"-y",
"docker-py"
],
"invocation": {
"module_args": {
"chdir": null,
"editable": false,
"executable": null,
"extra_args": null,
"name": [
"docker-py"
],
"requirements": null,
"state": "absent",
"umask": null,
"version": null,
"virtualenv": null,
"virtualenv_command": "virtualenv",
"virtualenv_python": null,
"virtualenv_site_packages": false
}
},
"msg": "\n:stderr: error: externally-managed-environment\n\n× This environment is externally managed\n╰─> To install Python packages system-wide, try apt install\n    python3-xyz, where xyz is the package you are trying to\n    install.\n    \n    If you wish to install a non-Debian-packaged Python package,\n    create a virtual environment using python3 -m venv path/to/venv.\n    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make\n    sure you have python3-full installed.\n    \n    If you wish to install a non-Debian packaged Python application,\n    it may be easiest to use pipx install xyz, which will manage a\n    virtual environment for you. Make sure you have pipx installed.\n    \n    See /usr/share/doc/python3.12/README.venv for more information.\n\nnote: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.\nhint: See PEP 668 for the detailed specification.\n"
}
PLAY RECAP ***********************************************************************************************
ansible-nas                : ok=35   changed=1    unreachable=0    failed=1    skipped=33   rescued=0    ignored=0   \\
Additional context
Add any other context about the problem here.
New to reporting through GIT, please let me know what else I can provide.

It has historically taken a little while for the dependent packages (Docker etc) to catch up with the LTS releases of Ubuntu. Because of that, I usually leave it a couple of months before upgrading, and I'm guessing you've uncovered something there.
I haven't yet done any testing of Ubuntu 24.04. If you're keen to use Ansible-NAS, use 22.04 for now, which is still supported for another three years, and do an in-place upgrade in a few weeks once I've fixed the niggles 👍🏻

Thanks for the response!
I'll try downgrading-
but the weird thing is that I had this working 3 weeks ago using the same usb drive to flash ubuntu 24.04 on the same system.  I had a hardware short and had to replace a storage drive, and through it might have corrupted my os drive because I ran into this issue.  Something in the chain must have upgraded and made 24.04 incompatible :/
I'll go to 22.04.  Thanks!

I don't think this issue has been fixed because I'm doing exactly the same today and experiencing the same errors.

Hi, I haven't done the work to move to 24.04 yet, real life has very much got in the way of any fun sort of development recently

Apologies dave. I didn't mean to be critical. You've given an amazing gift to the community with all this work that you've done! Ansible-nas is gamechanging!!
I just wanted to flag that this issue was not resolved because it was closed as completed back in May.


Emmet stopped working

VSCode Version:1.45.1
OS Version:Windows_NT ia32

Steps to Reproduce:
1.Update to new vs version.
2.Try use Emmet on HTML files

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

I also work with GRUNT and SCSS.
The issue dose not occur when it's a regular static html file.
Nevertheless this bug happens from time to time. Usually gets working on it's own after a while.

UPDATE: Emmet is working now.
I think this might have to do with what file structure I am loading to my working directory.
Make sure you are loading the root directory that contains the .git file.

Closing this old issue. Feel free to open a new issue if it happens again.


Empty stripes after skeleton analysis with skan

Hi @jni and @GenevieveBuckley
After analyzing the attached big skeleton using skan, the labeled skeleton showed empty stripes without any data.
skeleton_postprocessed_4.zip
The pipeline to analyze it is here:
skeleton_analysis.zip
Thanks in advance for your help

Thanks Edwin!
It was really fun to see what you're working on the other day, btw. It makes me happy to know people do use the code I write

thanks @EdwinHernandezG! I'll play around with this soon. After stewing on it for a bit, I think probably some labels were not translated for some reason: map_array will default to 0 if a key is missing. So maybe my idea of how __array__ generates the label image is incorrect.

Were we definitely using int64 for everything?

Interesting question. I don't think it should be relevant, since the missing pixels were in the middle of the volume (and thus probably under 2e9?), but we should absolutely check.


Initial checkin for supporting MaxVersion in SemVerStrategyState

Next step is to define some version strategies that make use of it

Overall, this code looks good, but I'd like to play out the idea of reusing NearestVersionLocator some more. I'll throw together my own PR for this and we can see what the best next steps will be.

Just created #118 for my alternate impl. Still need to push up the tests for it. However, I don't think that approach is going to work very well. Without understanding what the branches are being used for, it's hard (maybe impossible) to know whether parallel development should override the nearest.

any movements on this? i think this might sholve one of my issue:
https://github.com/ajoberstar/gradle-git/issues/202

See my comment on #202 .

I still want to address this, but given how long this PR's been open, I'm going to close. The original issue is still open.


Request body not available when sending integer

I'm using sentry-sdk 0.12.3 together with Django 2.2.6 and Django Rest Framework 3.10.3. I have a reproducible error in one of my views which basically looks like this:
def create(self, request):
    foo = request.data.get('foo')

If I make the following request
curl -X POST -H "Content-Type: application/json" http://localhost:8000/foo/ -d '"bar"'

The expected issue is reported and the sentry displays the request body as "bar".
If I instead send an integer like this
curl -X POST -H "Content-Type: application/json" http://localhost:8000/foo/ -d '123'

then the issue is still reported but no body is displayed.
Here is what my settings looks like:
import sentry_sdk
from sentry_sdk.integrations.celery import CeleryIntegration
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
    dsn='my_dsn',
    send_default_pii=True,
    integrations=[CeleryIntegration(), DjangoIntegration()],
)

How does the JSON payload received by Sentry look like for the request field?

Thank you for taking the time to help me, I realize how weird this issue sounds
curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '12345'

"request": {
    "url": "myserver/api/foo/",
    "headers": [
        [
            "Accept",
            "*/*"
        ],
        [
            "Authorization",
            "[Filtered]"
        ],
        [
            "Connection",
            "Keep-Alive"
        ],
        [
            "Content-Length",
            "5"
        ],
        [
            "Content-Type",
            "application/json"
        ],
        [
            "Host",
            "myserver"
        ],
        [
            "User-Agent",
            "curl/7.58.0"
        ],
        [
            "X-Forwarded-Host",
            "myserver"
        ],
        [
            "X-Forwarded-Server",
            "myserver"
        ]
    ],
    "method": "POST",
    "env": {
        "SERVER_NAME": "myserver",
        "SERVER_PORT": "443",
        "REMOTE_ADDR": "myserver_ip"
    },
    "inferred_content_type": "application/json"
},

curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"12345"'

"request": {
    "url": "myserver/api/foo/",
    "headers": [... same as above ...],
    "method": "POST",
    "env": {... same as above ...},
    "inferred_content_type": "application/json"
},

$ curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"asd"'

"request": {
    "url": "myserver/api/foo/",
    "headers": [... same as above ...],
    "env": {... same as above ...},
    "data": "asd",
    "method": "POST",
    "inferred_content_type": "application/json"
},

$ curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"12a45"'

"request": {
    "url": "myserver/api/foo/",
    "headers": [... same as above ...],
    "env": {... same as above ...},
    "data": "12a45",
    "method": "POST",
    "inferred_content_type": "application/json"
},

From your examples I get that even JSON strings that are parseable as
integers are omitted. Is that correct?
Could you ensure that the data attribute on DRF's request does actually
work correctly? That's where we take the payload from.
On Mon, Oct 7, 2019, 20:42 Oskar Persson<EMAIL_ADDRESS>wrote:

Thank you for taking the time to help me, I realize how weird this issue
sounds
curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '12345'
"request": {
"url": "myserver/api/foo/",
"headers": [
[
"Accept",
"/"
],
[
"Authorization",
"[Filtered]"
],
[
"Connection",
"Keep-Alive"
],
[
"Content-Length",
"5"
],
[
"Content-Type",
"application/json"
],
[
"Host",
"myserver"
],
[
"User-Agent",
"curl/7.58.0"
],
[
"X-Forwarded-Host",
"myserver"
],
[
"X-Forwarded-Server",
"myserver"
]
],
"method": "POST",
"env": {
"SERVER_NAME": "myserver",
"SERVER_PORT": "443",
"REMOTE_ADDR": "myserver_ip"
},
"inferred_content_type": "application/json"
},
curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"12345"'
"request": {
"url": "myserver/api/foo/",
"headers": [... same as above ...],
"method": "POST",
"env": {... same as above ...},
"inferred_content_type": "application/json"
},
$ curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"asd"'
"request": {
"url": "myserver/api/foo/",
"headers": [... same as above ...],
"env": {... same as above ...},
"data": "asd",
"method": "POST",
"inferred_content_type": "application/json"
},
$ curl -X POST -H "Content-Type: application/json" myserver/api/foo/ -d '"12a45"'
"request": {
"url": "myserver/api/foo/",
"headers": [... same as above ...],
"env": {... same as above ...},
"data": "12a45",
"method": "POST",
"inferred_content_type": "application/json"
},
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/getsentry/sentry-python/issues/524?email_source=notifications&email_token=AAGMPRI3EXLCHD2I2HU5TN3QNN7JBA5CNFSM4I43JWUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEARMKXA#issuecomment-539149660,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGMPRPTUAQ2ZSRQXV4MR73QNN7JBANCNFSM4I43JWUA
.

From your examples I get that even JSON strings that are parseable as
integers are omitted. Is that correct?

That is correct, I discovered that just now when I wrote these examples

Could you ensure that the data attribute on DRF's request does actually
work correctly?

Running print(request.data) I always get the data I expect. On the next line I run print(request.data.get('foo')) which gives me the error creating the Sentry issue

@OskarPersson could you also check what the SDK outputs when running with init(debug=True)? Just to get a rough feel of where the data is lost.
Also another silly idea, could you try if "-123" is lost? I.e. a negative integer that is sent as a JSON string.

This is all I get when enabling debug:
[sentry] DEBUG: Setting up integrations (with default = True)
[sentry] DEBUG: Setting up previously not enabled integration celery
[sentry] DEBUG: Setting up previously not enabled integration django
[sentry] DEBUG: Setting up previously not enabled integration logging
[sentry] DEBUG: Setting up previously not enabled integration stdlib
[sentry] DEBUG: Setting up previously not enabled integration excepthook
[sentry] DEBUG: Setting up previously not enabled integration dedupe
[sentry] DEBUG: Setting up previously not enabled integration atexit
[sentry] DEBUG: Setting up previously not enabled integration modules
[sentry] DEBUG: Setting up previously not enabled integration argv
[sentry] DEBUG: Setting up previously not enabled integration threading
[sentry] DEBUG: Enabling integration celery
[sentry] DEBUG: Enabling integration django
[sentry] DEBUG: Enabling integration logging
[sentry] DEBUG: Enabling integration stdlib
[sentry] DEBUG: Enabling integration excepthook
[sentry] DEBUG: Enabling integration dedupe
[sentry] DEBUG: Enabling integration atexit
[sentry] DEBUG: Enabling integration modules
[sentry] DEBUG: Enabling integration argv
[sentry] DEBUG: Enabling integration threading
[sentry] DEBUG: Sending event, type:null level:error event_id:348e1c044d134f708bd796ea982128de project:9 host:<IP_ADDRESS>
Internal Server Error: /api/foo/
Traceback (most recent call last):
  ...
     print(request.data.get('foo'))
AttributeError: 'int' object has no attribute 'get'

I tried "-123" and it also does not include the body in the created issue

Okay... could you initialize with:

def before_send(event, hints):
    print(event)
    return event

init(before_send=before_send)

Now you should see the event for sure

event['request']['data'] is correct for both "asd" and 123

Okay, so it's still correct on the SDK side, which means the server had to have discarded it. Could you link an issue that is missing the request data?

No sorry I can't, this is on a on-premise instance of Sentry

What version of onprem do you have? Could you try on sentry.io?

As this is a very old issue and the OP never responded, I will close this.
If you came across this Issue and what this to be fixed, please create a new Issue and link to this one. Thanks!


monoio need support pollable IO driver for cross platform development

Why?
The platform support: https://github.com/bytedance/monoio/blob/master/docs/en/platform-support.md
How?
We can just use mio as our dependency for the pollable IO driver

Another IO library here: https://docs.rs/polling/latest/polling/, compare with mio, maybe it is more convenient for embedding.

It enables EPOLLONESHOT by default, maybe not efficient enough? We'll review its code later.

Another IO library here: https://docs.rs/polling/latest/polling/, compare with mio, maybe it is more convenient for embedding.

It enables EPOLLONESHOT by default, maybe not efficient enough? We'll review its code later.

yes mio only supports edge trigger and polling only suports oneshot, they have different limitations.

BTW, our arm is simply for facilitate cross-platform development at this time.

Does that means single thread is ok? Otherwise spawn may need Send ?

@SSebo Introduce mio is just for cross-platform, and thread-per-core is our design goal. So needn't Send.

The #73 solved this issue.


Add field for nonfirst LA attempts count

What changed?
Pursuant to our discussions and conclusions around how we will charge for Local Activities in cloud, I've added the field that contains the information we need to perform those charges accurately.
The field is not added to the completed event, because metering does not need it to be there to work properly, and it has no value from a replay perspective.
For discussion:

Should we embed this field inside a new message? That was my initial inclination, for future proofing purposes, but it's not clear exactly what that name would be. MeteringMetadata? Does it seem likely we'll need more info at some point? Arguably not, since we don't even really want to use this as a long term solution anyway.

Why?
Needed for accurate metring

Breaking changes
No

Should we use a MeteringMetadata sub-message? There's a bit more reason to now, that it's on the event as well.
:+1: emoji react for yes, :-1: for no

I'm really in favor of MeteringMetadata option, especially if we add this field not just to the command, but also to the event.
I expect more fields with metering-only semantics to be added as time pass. I think putting them right next to fields that are critical for an actual execution and replay mechanics and understanding what happened to the workflow in the history looks very unpolished from the API design perspective.
There is nothing technically wrong with it putting them on the top level, protobuf does allow us to remove them later if needed, it's mostly a stylistic and "How the public API looks" point of view.


Custom Instruments don't export

Describe the bug
Custom instruments don't export to MP3 when selected, and the spots where they are supposed to be are silent
To Reproduce
Steps to reproduce the behavior:

Import a custom instrument
Set it anywhere in the song
select "Export as MP3"

Expected behavior
The previous version I used, all custom instruments were included in the MP3 export
Screenshots
They don't explain the issue
Additional context
It's not an issue with the sound file, as it plays just fine in the editor. it's only when exporting that it is messed up.

Hi! Custom instruments are being exported just fine for me. Have you checked that the files are still in their original locations by the time you export the song?
If you go to 'Instrument settings', Note Block Studio will display the sound file name in red if it can't load the sound. However, if you move or delete the file from its original location, it will keep displaying it as normal (because the sound is already loaded into memory), but the MP3 export code will ignore it since it cannot be found.

Hey, are you still experiencing this issue?


Improve storage of masks for missing values in VDC

The boolean masks that are used to represent missing data values in the VDC are stored one byte per grid node, resulting in a significant storage & I/O overhead. This could be reduced by 8x by simply encoding the arrays as bit masks (one bit per node). Further reduction might be possible by exploiting lossless compression.

And in terms of lossless compression, run length encoding fits here very well

And in terms of lossless compression, run length encoding fits here very well.

Update: the Bitmask class in SPERR can be pulled here to replace whatever is currently in use.


Account Naming: Move naming functions to new class + reuse naming

Related to W-029679:
Summary: Users seeing non-Household accounts getting renamed with Household naming logic whenever a new Contact was added to that account. In this case, they had an Account with no recordtype that existing before HEDA was installed. With HEDA installed, when they modified or added a Contact to that Account, the household name was applied. There are a number of vulnerabilities in the ACCT_IndividualAccounts_TDTM that can lead to this behavior.
In this ticket we will focus on:

Move Naming functions to a new class as NPSP did
How can other packages (e.g. Advancement) reuse naming functionality?

Tracking W-030128


Allow selecting custom fonts

darkmatter is really persuasive and it's a low hanging fruit

Looks good.
Only improvement might be to check the validity of the font in some way, since I tested this feature in Smithbox (same implementation) with Wingdings and it threw an exception, whereas other fonts worked fine.

Hmmm... so far as I can guess, ImFontAtlasGetTexDataAsRGBA32 isn't rasterising the font as expected and that's leading us to try create some misformed texture


New events have a different RSVP icons

Description
There are different RSVP icons for events. Is this intended?
Screenshots

Files
A list of relevant files for this issue. This will help people navigate the project and offer some clues of where to start.
To Reproduce
View Calendar of Events
Tasks
Include specific tasks in the order they need to be done in. Include links to specific lines of code where the task should happen at.

[ ] Task 1
[ ] Task 2
[ ] Task 3

Remember to use helpful labels and milestones. If you use the "help wanted" label, Code for America will promote it widely.

There should be two button types: one for Meetup events and one for non-Meetup events. The Meetup events need that specific type of red button since it allows users to RSVP to events directly on events/index. I'll add a button class to non-Meetup events.


Remove istio extensions and tests

Description
Changes proposed in this pull request:

Remove Istio extensions from dashboard as those were already moved to Istio module repository

/test all


USB device detection tests use unstable device names

Device
Any
RTE version
n/a
Affected component(s) or functionality
USB-C docking station tests (and probably also other USB tests)
Brief summary
Tests look for a specific device name in lsusb like Genesys Logic, Inc. USB3.2 Hub. These names come from the OS's USB ID database and are subject to change.
How reproducible
100%
How to reproduce
Run keyword Detect Docking Station USB Devices In Linux on Wavlink UMD05 Pro Rev.e on newer Ubuntu versions
Expected behavior
Test detects devices correctly
Actual behavior
Test fails because one device changed name and it's not recognized
Link to screenshots or logs
UTC008.001 Docking station detection after coldboot (Ubuntu 22.04)... .Please make sure the docking station connected is WL-UMD05 Pro Rev.E and press ENTER

Manual step confirmed
UTC008.001 Docking station detection after coldboot (Ubuntu 22.04)... | FAIL |
'Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 04f2:b6fb Chicony Electronics Co., Ltd Chicony USB2.0 Camera
Bus 003 Device 007: ID 2109:4817 VIA Labs, Inc. USB2.0 Hub
Bus 003 Device 009: ID 0c76:1707 JMTek, LLC. USB Audio
Bus 003 Device 008: ID 1d5c:7102 Fresco Logic Generic Billboard Device
Bus 003 Device 005: ID 067b:2586 Prolific Technology, Inc. USB 2.0 Hub
Bus 003 Device 003: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 003 Device 006: ID 8087:0026 Intel Corp. AX201 Bluetooth
Bus 003 Device 002: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 0bda:0306 Realtek Semiconductor Corp. USB3.0 Card Reader
Bus 002 Device 006: ID 13fe:6700 Kingston Technology Company Inc. USB DISK 3.0
Bus 002 Device 005: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 002 Device 003: ID 2109:1817 VIA Labs, Inc. USB3.0 Hub
Bus 002 Device 002: ID 05e3:0620 Genesys Logic, Inc. GL3523 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub' does not contain 'Genesys Logic, Inc. USB3.2 Hub'

Genesys Logic, Inc. GL3523 Hub = Genesys Logic, Inc. USB3.2 Hub (USB3.2 Hub is the generic name).
Additional context
Simply use the VID:PID combination that doesn't change with OS updates.
Could also skip hubs in usb tests and look for actual usb endpoint devices behind them (but we should use VID:PID for that too)
Same applies to PCI devices
Solutions you've tried
No response

Another one:
Bus 003 Device 004: ID 5986:9102 Acer, Inc BisonCam,NB Pro [...] does not contain 'Camera'

Issue resolved as of this commit.
Log available here.