support for the fna file extension

bionumpy version: 1.0.11
Python version: 3.9.18
Operating System: osx

Description
Traceback (most recent call last):
  File "/Users/nickyoungblut/dev/tmp/demux/./reads-find.py", line 44, in main
    query = bnp.open(args.query_fasta).read()
  File "/Users/nickyoungblut/mambaforge/envs/sc/lib/python3.9/site-packages/bionumpy/io/files.py", line 179, in bnp_open
    return _get_buffered_file(filename, suffix, mode, is_gzip=is_gzip, buffer_type=buffer_type, lazy=lazy)
  File "/Users/nickyoungblut/mambaforge/envs/sc/lib/python3.9/site-packages/bionumpy/io/files.py", line 56, in _get_buffered_file
    buffer_type = _get_buffer_type(suffix)
  File "/Users/nickyoungblut/mambaforge/envs/sc/lib/python3.9/site-packages/bionumpy/io/files.py", line 77, in _get_buffer_type
    raise RuntimeError(f"File format {suffix} does not have a default buffer type. "
RuntimeError: File format .fna does not have a default buffer type. Specify buffer_type argument using get_bufferclass_for_datatype function oruse one of '.vcf', '.bed', '.bdg', '.narrowPeak', '.fasta', '.fa', '.fastq', '.fq', '.gfa', '.gff', '.gtf', '.gff3', '.sam', '.bam', '.sizes', '.wig', '.pairs', '.pa5'

What I Did
import bionumpy as bnp
bnp.open("sequence.fna").read()

Why support *.fna?
*.fna is commonly used to distinguish between nucleotide (*.fna) and amino acid (*.faa) fasta files. It appears that you do not support *.faa either.
Misc
It would be helpful to have an example in the docs on specifying the buffer_type argument using get_bufferclass_for_datatype function.
There's also a typo in the error message: oruse

Thanks for the input! Missing .fna .faa was an oversight. I've also added better error messages for unsupported file suffixes so that it's easier to find the right buffer_type (which in this case was bnp.MultiLineFastaBuffer)

Thanks!

Thanks!


youtube media source should use "embed" instead of "watch" pathname

In GitLab by @stefanprobst on Jan 17, 2022, 19:41
afaiu the database is initially populated with two media sources for youtube and vimeo, with media category "EMBED", and a serviceUrl which uses watch as the pathname. however, URLs like https://www.youtube.com/watch?v=dQw4w9WgXcQ can not be embedded in an iframe. instead we should use "embed" in the pathname, e.g. https://www.youtube.com/embedv=dQw4w9WgXcQ.
i think this would need to be changed here (?)
EDIT: i did change the service url for the youtube media source in the prod db, but not sure what to do to change the category of already existing media (i.e. youtube urls)

Seems that the issue was closed without fixing it. It does not have high priority, because the endpoint can be changed manually (PUT /api/media-sources/youtube), but nevertheless it would be good to adapt it in the code. Should be a simple search for youtube.com/watch and replace with youtube.com/embed. I see the mentioned entry in the initial-data which I could have changed by myself but there are also some tests in place, where the youtube.com/watch is used, e.g. here. Maybe it is worth to have a more detailed look on these tests.

In the migration script db/changelog/migrations/0057-SSHOC_146-yt_url_change.yaml the service_url in media_sources table is already changed to proper value. We can add additional script that will update all source_url in media_data, however, this won't fully solve the problem. The reason is that it is a user who provides a link to the media. So, if the user will use a link with "watch", then we encounter the same problem. We can (1) leave it as is (but it may cause similar inconsistencies in the future if users are not aware) or we can (2) add additional validation in the backend - additional validation would require discussion / agreement on how to approach that, because each media source may need different approach. In case of (2) a new task would be needed, as this will probably be a medium task, not a small one.

curation and front-end to support these "embbed" links: curation to check current links and front-end to add help text


startingDirectory works with Ubuntu 18.04, but not Ubuntu 20.04

Environment
Windows build number: Microsoft Windows NT 10.0.19041.0
Windows Terminal version (if applicable): 1.0.1401.0 and 1.0.1402.0 (Preview)

Any other software?
Ubuntu 18.04 and Ubuntu 20.04, both running on WSL 2

Steps to reproduce
Install Ubuntu 18.04 and 20.04 on WSL 2.
Install Windows Terminal
I have the following entries in my Terminal settings:
      {
        "guid": "{7f586916-8357-53d4-bb2b-ca96f639898a}",
        "hidden": false,
        "name": "Ubuntu",
        "source": "Windows.Terminal.Wsl",
        "startingDirectory": "\\\\wsl$\\Ubuntu\\home\\glenn"
      },
      {
        "guid": "{392ab1ad-dce3-4251-8b7a-d2d4b25ecb1b}",
        "hidden": false,
        "name": "Ubuntu-20.04",
        "source": "Windows.Terminal.Wsl",
        "startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\glenn"
      },

Expected behavior

When starting one of those profiles, I'd expect my home directory (~/) to be my starting directory.
Actual behavior

When I start Ubuntu, my home folder is ~/ (/home/glenn). When I start Ubuntu-20.04, my home folder is /mnt/c/Users/glenn (my Windows home folder).
If I remove the startingDirectory entry, the starting folder is /mnt/c/Users/glenn on both distros. Using other folders than /home/glenn gives the same result. Works in Ubuntu, not in 20.04.
If I use Powershell, cd to \\wsl$\ubuntu-20.04\home\glenn and run wsl -d Ubuntu-20.04 from that folder, I start in the correct folder, ~/. The same for Ubuntu so here they behave the same.
If I start the Ubuntus from the Start Menu they behave the same, the both start in ~/.
Only when starting Ubuntu 20.04 from the Windows Terminal profile I get the wrong starting folder.

Mine is working fine.  One workaround is to include a "cd" in the end of your ~/.bashrc

Huh, this is a real thinker. @benhillis / @craigloewen-msft any ideas why this might be? Maybe something weird with the windows<->//wsl$/ interop?
I honestly have no idea why it would work for one distro and not the other.

One workaround is to include a "cd" in the end of your ~/.bashrc

Yeah, I did that (just to the /etc/bash.bashrc file). Still weird how it works on some distroes and not on others.

(edited the OP from WLinux to Ubuntu since I copy/pasted the wrong entry from settings. WLinux behaves like Ubuntu, it respects the startingDirectory setting)

Tried it on another, fresh machine. This time with Ubuntu as 20.04 and Ubuntu-18.04. Both worked as expected and started with my home dir as the current path. As specified. Just a freak thing I guess.

It doesn't seem to work for me either.
Here is my profile for Ubuntu-20.04:
        {
            "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
            "hidden": false,
            "name": "Ubuntu-20.04",
            "cursorShape": "underscore",
            "source": "Windows.Terminal.Wsl",
            "colorScheme": "One Half Dark",
            "padding" : "5, 5, 5, 5",
            "fontSize": 11,
            "closeOnExit" : true,
            "startingDirectory": "/home"
        }

Instead of opening in /home it opens in the default which is ~.

@warpdesign Since Terminal is a Windows application, it expects paths in Windows format.
To open in /home for Ubuntu-20.04, you'll want //wsl$/Ubuntu-20.04/home.

It does not work with //wsl$/Ubuntu-20.04/home either: it still opens in ~.

@henriksen I think I found the "problem": Ubuntu-20.04 automatically changes the directory to the user's home in .bashrc:

cd ~

So the startingDirectory actually works but directory is changed back to the user's home when .bashrc is executed.

Hmm.. after some more digging there is actually a problem that seems to be related to the status of the WSL distro:

if it is running, startingDirectory works as expected
if it is not running, startingDirectory becomes %USERPROFILE% (/mnt/c/Users/xxx)

On this video the distro is not running when I first open an Ubuntu tab and the starting directory is my Windows user profile (not expected). But when I open a new Ubuntu tab, the distro is running, and the starting directory is the expected one: /home/leo/Dev.

Can you share .bashrc?

Can you share .bashrc?
Both .bashrcs are here: https://gist.github.com/henriksen/4ebbf1e5b38c23da68f5dfe987d507b8
No cd in any of them as far as I can see.

Hmm.. after some more digging there is actually a problem that seems to be related to the status of the WSL distro:

Makes no difference in my case.

I'm seeing the same problem but, in my case, I've pinned it down to the source config entry. If I have two Ubuntu entries:
            {
                "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
                "hidden": false,
                "name": "Ubuntu",
                "source": "Windows.Terminal.Wsl",
                "commandline": "wsl.exe ~"
            },
            {
                "guid": "{daaee0d5-f525-4b10-98d1-d0ed1ede9f72}",
                "hidden": false,
                "name": "Ubuntu-no-source",
                // "source": "Windows.Terminal.Wsl",
                "commandline": "wsl.exe ~"
            },

then the "Ubuntu-no-source" will always go into ~/ whereas "Ubuntu" will always go into "/mnt/c/users/phili":

The above shows that it doesn't matter which order I open them in either.

@warpdesign you need to add your username directory, not only "home".  Mine is:
"startingDirectory": "//wsl$/Ubuntu-20.04/home/paulo"

Hey so this thread is pretty old at this point. If I'm reading it all correctly:

OP's (@henriksen) original issue about the distros treating the starting directory differently went away on its own.
@warpdesign is having a different issue, where subsequent seemingly open in different directories (https://github.com/microsoft/terminal/issues/6022#issuecomment-640911570).
@pcolmer is having yet another issue with the commandline and the starting directory

To try and untangle this mess, @warpdesign & @pcolmer, could you move your issues to another thread, so we can track that one independently? I'm betting that there's some weird bashrc/profile/whatever-other-config hijinks going on, but I'd rather not further muddle this thread.
Thanks all (and sorry for the delayed replies)!


MarcumQ Function results are not equal.

matlab:
marcumq(3.1622766,1.7941,1) = 0.9432
MathNet:
SpecialFuntions.MarcumQ(1,3.1622766,1.7941) = 0.80467
The results are not equal.

different formula

I'm not sure about the accuracy of the implemented SpecialFunctions.MarcumQ function. If the error is significant, we can easily calculate the Marcum Q function directly using the Integrate and BesselI functions, as shown in the code below, based on the explanation from Wikipedia.
var m = 1.0;
var a = 3.1622766;
var b = 1.7941;

var expected = 0.9432355485509051327956531; // from WolframAlpha: N[MarcumQ[1, 3.1622766,1.7941], 25]
var actual = 1 - 1.0 / Math.Pow(a, m - 1) * Integrate.GaussKronrod(x => Math.Pow(x, m) * Math.Exp(-(x * x + a * a) / 2) * SpecialFunctions.BesselI(m - 1, a * x), 0, b);
//    actual = 0.94323554855090519
//    error = |actual - expected| = 1.1102230246251565E-16

FWIW, there is significant error in SpecialFunctions.MarcumQ (well outside the stated target accuracy of 1.0e-11). While it may be possible to compute the value directly per @diluculo's suggested technique, shouldn't the method return the expected value? It almost seems like SpecialFunctions.MarcumQ is implementing some other function. I think this ticket should be reopened. I've attached an example plot to show what I'm talking about.


[WIP] refactor: use layer cache for layer download

Problem
part of https://github.com/neondatabase/neon/issues/4373
Summary of changes
DO NOT REVIEW. THIS IS WIP. Early comments are welcomed. This is the minimum change we will need to make in order to have the layer cache. To make the logic clear, more refactor is needed and we should move more things to the layer cache.
This PR adds a new layer_cache, and refactors LayerMap to only store RemoteLayerDesc. If we want to retrieve the underlying layer object, we will need to get it from layer_map.

Add layer_cache. Note that layer_cache current does not handle any download / eviction logic. It is simply a HashMap. We should move more things to that struct in this PR.
Rename RemoteLayer to RemoteLayerDesc. Change LayerMap to store the mapping of RemoteLayerDesc instead of dyn PersistentLayer.
replace is removed from LayerMap. Now we have a function called ensure_consistent. Every time we download a file from the remote storage, we should call this function to ensure it is consistent.

The code just compiles and needs further testing. The eviction logic is not yet moved to layer cache. RemoteLayerDesc could be further simplified to only record necessary info. LayerMap needs refactor so that we do not need to call replace.
Checklist before requesting a review

[ ] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

We talked about a refactoring in the past, where instead of storing a DeltaLayer, ImageLayer or RemoteLayer in the layer map, there would be another struct that can hold the DeltaLayer or ImageLayer reference, or neither if it's not present locally. So something like:
struct LayerDesc {
    present_in_remote_storage: bool,
    present_on_local_disk: bool,
    local_layer: Option<Arc<PersistentLayer>>

    // some more information that I think would be handy
    last_access: Timestamp,
}

I believe the goal is the same that you're trying to accomplish with this PR: when a layer is downloaded from remote storage, you wouldn't need to modify the layer map. You'd just modify the LayerDesc. How does this PR compare with that approach?
I'm not too excited about the new cache and HashMap that this introduces. Is that really needed?
If you clear the cache, would things break? If yes, then it doesn't sound like just a cache, but rather an important mapping table.

close in favor of the plan to split the refactor into small steps -> https://github.com/neondatabase/neon/issues/4392


Question: How to pass AutoRefreshingProvider wrapping either ChainProvider or StsAssumeRoleSessionCredentialsProvider?

Hi
It is probably more of a Rust question.
I am trying to abstract over an AWS credentials which might come from an assume role or from a local profile. Unfortunately, I cannot specify the type in a way that it will let me return an AutoRefreshingProvider implementing any ProvideAwsCredentials.
Is it even possible?

@dovreshef better leave the fallback logic to ChainProvider which looks in this order for credentials - https://github.com/rusoto/rusoto/blob/master/AWS-CREDENTIALS.md

@meghashyam6 I don't understand how.
Basically I need to handle two cases. Either I'm getting credentials from local env vars / .aws/credentials file / container metadata/ instance metadata  (using the ChainProvider wrapped in AutoRefreshingProvider). Or I'm getting a role_arn in which case I need to use the aforemention credentials to call sts and assume a role.
E.g What should I fill the ??? with?

use rusoto_core::{
    credential::{
        AutoRefreshingProvider, ChainProvider, ProvideAwsCredentials
    },
    region::Region,
    request::HttpClient,
};
use rusoto_sts::{StsAssumeRoleSessionCredentialsProvider, StsClient};
use std::time::Duration;

fn main() {
    let role_arn = Some("something");
    let credentials = load_credentials(role_arn);
}

fn load_credentials(role_arn: Option<String>) -> AutoRefreshingProvider<???> {
    let mut credentials = AutoRefreshingProvider::new(ChainProvider::new())
        .expect("Failed to load AWS credentials");
    // Prevent process hanging for 30 seconds or more, waiting for aws metadata.
    // The get_mut is to get the underlying provider wrapped by AutoRefreshingProvider
    credentials.get_mut().set_timeout(Duration::from_secs(5));

    let http_client = HttpClient::new().expect("Failed to create https client for sts");

    if let Some(ref role_arn) = role_arn {
        // no matter which region the sts credentials come from, they work globally
        let sts = StsClient::new_with(http_client, credentials, Region::UsEast1);
        let provider = StsAssumeRoleSessionCredentialsProvider::new(
            sts,
            role_arn.to_string(),
            "default".to_string(),
            None,
            None,
            None,
            None,
        );
        return AutoRefreshingProvider::new(provider).expect("Failed to assume AWS role credentials");
    }
    credentials
}

@dovreshef Have you tried a custom credential provider?
`impl ProvideAwsCredentials for CustomCredentialsProvider {
type Future = FutureResult<AwsCredentials, CredentialsError>;
fn credentials(&self) -> Self::Future {
    //write your logic here for accessing either chainprovider or stsprovider calling credentials()
}

}and then wrap it around AutoRefreshing providerlet credential_provider = CustomCredentialsProvider::new());
let auto_refreshing_provider = AutoRefreshingProvider::new(credential_provider)`

@meghashyam6 That worked. Thanks a lot!
Two points:

I had to the box the future.
Also, Now instead of deciding once I have to check which case i'm in on every credentials call. Feels wrong somehow.


[ci] Allow skipping builds with [skip build]

When working with the XML doc files, we don't need to build everything with every PR (as discussed with @YuriSizov in #64164).
With this change, adding the text [skip build] to a commit message will skip the builds and just run the static checks. (You should see the results with the GitHub actions on this PR -- hmmm I know there are issues trying to change CI Actions with PRs - here's my actions on this commit).
This will save a lot of time working on the docs and also stop a lot of extra builds. No more waiting for a macOS instance to become available!

I think our preferred approach would be to chain CI tasks in a way where cheapest and quickest tasks run first, and if they fail, the rest doesn't run at all. Because we have quite a few issues with CI clogging on log-capacity platforms (macOS) or on heavy builds.
Making docs-only builds makes sense, but I think we should automate it based on the files changed, not on a commit tag.

Sure, right now they can [skip ci] to skip it all though. Same problem. All PRs are reviewed, so the reviewer will see that the build has been skipped.
Adding checks for specific changes is also possible, of course, but IMHO it will add complexity to the actions and the potential maintenance for it isn't worth it for this (niche) case. Happy to be wrong if there's now an easy way to do it.
I just want to stop building so much every single PR!

Doesn't GitHub Actions have built-in support for [ci skip] now?

I think we should automate it based on the files changed, not on a commit tag

Just to revive this since it's still an issue, maybe another possibility is to use paths-ignore (docs) in the workflows?
on:
  push:
    paths-ignore:
      - 'docs/**'

When all the path names match patterns in paths-ignore, the workflow will not run. If any path names do not match patterns in paths-ignore, even if some path names match the patterns, the workflow will run.

If we can enumerate the paths/files that should not trigger a build this might be a good solution?


Rename variant Purple 🪻 to Plum 🍆

The variant Purple 🪻 should be renamed to Plum 🍆 as it is also a fruit like the Tangerine 🍊.

No other fruits allowed here. It's just Tangerine 😤


Advanced AE price history chart

Please describe the problem that your request should resolve.

Describe the solution you'd like

Is it already possible to achieve the same outcome in any other way? If so, how?

Additional context

[ ] this implementation depends on the development of the AE price history API.

I could offer you the following endpoint:
https://dex-backend-mainnet.prd.service.aepps.com/graph?graphType=Price&timeFrame=MAX&tokenAddress=ct_J3zBY8xxjsRr3QojETNw48Eb38fjvEuJKkQ6KzECvubvEcvCa

I could offer you the following endpoint:
https://dex-backend-mainnet.prd.service.aepps.com/graph?graphType=Price&timeFrame=MAX&tokenAddress=ct_J3zBY8xxjsRr3QojETNw48Eb38fjvEuJKkQ6KzECvubvEcvCa
This is technically speaking the price graph of wrapped AE (WAE) but we hardcoded it to represent AE

heeey nice to see the progress on this! .] This will be helpful, will get back in touch once it is actual again.


Enabling more ruff lint rules

There are too many code changes required to make the checks pass and I don't really expect all of them to be accepted. It should be easy to drop whatever is deemed unnecessary, too strict or just not suitable for this project - probably better to review on per-commit basis.
I've tried to run the default set of tests, but my machine ran out of disk space :clown_face:, not going to claim I didn't break anything.

Polarion report UTC timezone
Not sure if make sense, but from what I understand the time stamp is being used to generate Title of the test run. Without timezone, I assume the datetime is naive, dependent on the OS settings/location of where the tmt is being run, resulting in potential mismatches, no?

Would it be beneficial to add a couple of lines in the contribute doc about ruff?
Maybe only mention when it's acceptable to add noqa (plus to add a comment why it's being added) and/or add a link to ruff rules page to keep it succinct?
Alternatively, make it more verbose and also mention mypy?

Isort change being explained here

Can $maintainer(s) check the remaining, commented-out ruff rules in pyproject.toml. I think it would be nice if we could delete those not suitable for this project and keep only those that might get implemented in the future...Or just remove all of them.

Notes for some of the disabled checks:
TRY200, B904: Within an except clause, raise exceptions with raise ... from err or `raise from None.
I've actually tried to implement PEP-3134, as it looks like a good practice to me, but ultimately figured it's best to ask about it first.
Example of change in existing code:
    except json.decoder.JSONDecodeError as error:
        raise GeneralError(f"Invalid json syntax: {error}")

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
tmt.utils.GeneralError: Invalid json syntax: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

changed to:
    except json.decoder.JSONDecodeError as error:
        raise GeneralError("Invalid json syntax") from error

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
tmt.utils.GeneralError: Invalid json syntax

Q: flake8-quotes (Q000 Single quotes found but double quotes preferred) would need changes in basically whole codebase:

ruff . --select Q000
Found 4776 errors.

C90: mccabe (complex structure)

[tool.ruff.mccabe]
max-complexity = 14
$ ruff . --select C90
tmt/beakerlib.py:76:9: C901 __init__ is too complex (17 > 14)
tmt/beakerlib.py:185:9: C901 fetch is too complex (19 > 14)
tmt/convert.py:191:5: C901 read_datafile is too complex (33 > 14)
tmt/convert.py:380:5: C901 read is too complex (41 > 14)
tmt/convert.py:616:5: C901 read_nitrate is too complex (31 > 14)
tmt/convert.py:758:5: C901 read_polarion is too complex (16 > 14)
tmt/convert.py:863:5: C901 read_nitrate_case is too complex (26 > 14)
tmt/convert.py:1046:5: C901 relevancy_to_adjust is too complex (16 > 14)
tmt/export/init.py:295:5: C901 check_md_file_respects_spec is too complex (20 > 14)
tmt/export/nitrate.py:95:5: C901 convert_manual_to_nitrate is too complex (16 > 14)
tmt/export/nitrate.py:358:5: C901 export_to_nitrate is too complex (60 > 14)
tmt/export/polarion.py:150:5: C901 export_to_polarion is too complex (41 > 14)
tmt/options.py:237:5: C901 create_method_class is too complex (17 > 14)
tmt/steps/discover/fmf.py:250:9: C901 go is too complex (57 > 14)
tmt/steps/provision/mrack.py:69:5: C901 import_and_load_mrack_deps is too complex (24 > 14)

ANN: flake8-annotations - Some of the checks could compliment mypy.
S: flake8-bandit - Security/vulnerability checks tmt probably doesn't need?
ISC:  ISC001 and ISC003 is actually passing already. Not sure if/how to adapt the code for ISC002 (Implicitly concatenated string literals over multiple lines)

After a brief reading, there are some checks I find arguable, I have questions WRT to some changes, but in general, the majority looks beneficial though, +1 to this effort from me.
And here comes the "but"... I'm afraid it might be way too big for a reasonable review, as a single PR :( A collection of PRs, one for a commit/a group of similar commits (like https://github.com/teemtee/tmt/pull/2014/commits/9ffff4d55b6d4daa1fd580584048937b522beee8 + https://github.com/teemtee/tmt/pull/2014/commits/ed34b66056f368e690984c6c6b6690f4b4933de0) - commits do seem to be very nicely rounded - would be easier to digest. Well, at least for me, YMMW. And we could discuss whether we do or do not enable a particular check.

After a brief reading, there are some checks I find arguable, I have questions WRT to some changes, but in general, the majority looks beneficial though, +1 to this effort from me.
And here comes the "but"... I'm afraid it might be way too big for a reasonable review, as a single PR :( A collection of PRs, one for a commit/a group of similar commits (like 9ffff4d + ed34b66) - commits do seem to be very nicely rounded - would be easier to digest. Well, at least for me, YMMW. And we could discuss whether we do or do not enable a particular check.

TBH, I'm even scared to start adding comments as I worry it might be very hard to address them e.g. in the middle one of those commits :)

Polarion report UTC timezone
Not sure if make sense, but from what I understand the time stamp is being used to generate Title of the test run. Without timezone, I assume the datetime is naive, dependent on the OS settings/location of where the tmt is being run, resulting in potential mismatches, no?

Makes sense to me, but I'm no Polarion user. Sticking to UTC seems like a way less prone to misunderstandings.

Would it be beneficial to add a couple of lines in the contribute doc about ruff?
Maybe only mention when it's acceptable to add noqa (plus to add a comment why it's being added) and/or add a link to ruff rules page to keep it succinct?
Alternatively, make it more verbose and also mention mypy?

Absolutely, with new linters & influx of waivers, let's communicate "the rules". Especially the comment with check ID & justification needs to be mentioned. I'd maybe add a new section before https://github.com/teemtee/tmt/blob/main/docs/contribute.rst#tests as pre-commit, linters involved, links and rules would consume a bit more than a single line, and they don't fit the tmt-ish nature of the "Tests" chapter. On the other hand, "Tests" does mention unit tests, maybe we could just structure "Tests" a bit - linters, unit tests, testsuite.

Can $maintainer(s) check the remaining, commented-out ruff rules in pyproject.toml. I think it would be nice if we could delete those not suitable for this project and keep only those that might get implemented in the future...Or just remove all of them.

+1 for the former option.

Notes for some of the disabled checks:
TRY200, B904: Within an except clause, raise exceptions with raise ... from err or `raise from None. I've actually tried to implement PEP-3134, as it looks like a good practice to me, but ultimately figured it's best to ask about it first.

I believe raise ... from ... is the current policy. tmt has a custom exception printer, exceptions logged will look different than what would the native interpreter logged, but it does support (and expect) exception chaining. While I did add from ... to all places I noticed, I did not touch messages of these exceptions - I agree raise GeneralError(f"Invalid json syntax: {error}") => raise GeneralError(f"Invalid json syntax}") from error is much better, it may result in a patch a bit more verbose, changing a lot of places. +1 from me, I'd just recommend making it a dedicated patch, or even a series of patches, e.g. one for each subpackage or something, if it turns out to be a very common issue. Keep @psss in the loop, BTW, he's often commenting on consistent logging and error messages, such a change fits the description pretty well :)

Q: flake8-quotes (Q000 Single quotes found but double quotes preferred) would need changes in basically whole codebase:

ruff . --select Q000
Found 4776 errors.

Yeah, probably not a good candidate for implementation... (Especially when I for one prefer single quotes :)

C90: mccabe (complex structure)
Something like pylint, right? I'd leave this one for very long winter evenings, although it may serve as a pointer to way too complicated code, it might be cumbersome to get the threshold good enough.

ANN: flake8-annotations - Some of the checks could compliment mypy.

I agree. I'm experimenting with pyright, to get another pair of eyes, but it does not play well with pre-commit...

S: flake8-bandit - Security/vulnerability checks tmt probably doesn't need?

Depends. I'd give it a try, let's see what it reports, we can always disable some or even all checks.

ISC: ISC001 and ISC003 is actually passing already. Not sure if/how to adapt the code for ISC002 (Implicitly concatenated string literals over multiple lines)

Hm, here I'm worried about readability. Might be better for our code to use multiline strings & dedent() instead of concatenating literals, but seems very much like a case-by-case area.
My thoughts on the rest of the commented-out checks:

"ARG",  # flake8-unused-arguments - sounds good, but my experience tells me this particular check is mostly a waiver factory. I'd still give it a try before dropping it completely.
"BLE",  # flake8-blind-except - I think we want this one
"FBT",  # flake8-boolean-trap - no idea, let's try it out
"A",  # flake8-builtins - let's try it out
"EM",  # flake8-errmsg - seems to me dubious at best...
"G",  # flake8-logging-format - tmt has its own logging methods, this might cause false positives, but let's give it a try - I see no use for G001 or G004 but G201 or G202 might be just an extra cheap bit of sanity checking
"T20",  # flake8-print - I'd enable these too, but there will be code to fix for sure.
"SLF",  # flake8-self - in the ideal world, yes, there will be violations as of now. I'd keep it around, and fix the reported issues.
"TCH",  # flake8-type-checking - sounds like a good idea to try out, avoiding unnecessary imports, and keeping type-only imports in check...
"PLW",  # pylint-warning - let's try it out, the list of checks looks solid
"TRY",  # tryceratops - let's try it out, I have no idea what it might report, never heard of this linter, but checks look interesting

- hook id: ruff
- files were modified by this hook

Found 2 errors (2 fixed, 0 remaining).

All changes made by hooks:
diff --git a/tmt/utils.py b/tmt/utils.py
index 96f1c6a..ace05a7 100644
--- a/tmt/utils.py
+++ b/tmt/utils.py
@@ -1280,10 +1280,7 @@ def render_run_exception(exception: RunError) -> str:
     # Check verbosity level used during raising exception,
     # Supported way to correctly get verbosity is
     # tmt.util.Common.opt('verbose')
-    if isinstance(exception.caller, Common):
-        verbose = exception.caller.opt('verbose')
-    else:
-        verbose = 0
+    verbose = exception.caller.opt('verbose') if isinstance(exception.caller, Common) else 0
     for name, output in (('stdout', exception.stdout), ('stderr', exception.stderr)):
         if not output:
             continue
@@ -1295,10 +1292,7 @@ def render_run_exception(exception: RunError) -> str:
             line_summary = f"{min(len(output_lines), OUTPUT_LINES)}/{len(output_lines)}"
             output_lines = output_lines[-OUTPUT_LINES:]

-        lines += [
-            f'{name} ({line_summary} lines)',
-            OUTPUT_WIDTH * '~'
-            ] + output_lines + [
+        lines += [f'{name} ({line_summary} lines)', OUTPUT_WIDTH * '~', *output_lines] + [

huh, CI pre-commit failed,  but I'm not reproducing this locally with same version. That's fishy.
Will try to update pre-commit hook, which will require adding new RUF008 and RUF009 to ignores (or to fix those :) )

Notes for some of the disabled checks:
TRY200, B904: Within an except clause, raise exceptions with raise ... from err or `raise from None. I've actually tried to implement PEP-3134, as it looks like a good practice to me, but ultimately figured it's best to ask about it first.

I believe raise ... from ... is the current policy. tmt has a custom exception printer, exceptions logged will look different than what would the native interpreter logged, but it does support (and expect) exception chaining. While I did add from ... to all places I noticed, I did not touch messages of these exceptions - I agree raise GeneralError(f"Invalid json syntax: {error}") => raise GeneralError(f"Invalid json syntax}") from error is much better, it may result in a patch a bit more verbose, changing a lot of places. +1 from me, I'd just recommend making it a dedicated patch, or even a series of patches, e.g. one for each subpackage or something, if it turns out to be a very common issue. Keep @psss in the loop, BTW, he's often commenting on consistent logging and error messages, such a change fits the description pretty well :)

@psss, would you be up for enabling the B904 check and modifying the existing raises that does not use raise from?
If yes, should it be part of this PR?
Any guidelines for standardization of error messages/exception handling?

Rebased with main, updated ruff to 0.0.263 as it includes new checks and fix for SIM222.

Rebased with main.

/packit build

Let's be serious about this PR - added it to 1.24 O:) Maybe not everything would get in main in this time frame, but at least the PR would start among PRs the collective "we" would like to see happen, in some way or form.

Let's be serious about this PR - added it to 1.24 O:) Maybe not everything would get in main in this time frame, but at least the PR would start among PRs the collective "we" would like to see happen, in some way or form.

Soo, why does it have a 'blocked' tag?

Let's be serious about this PR - added it to 1.24 O:) Maybe not everything would get in main in this time frame, but at least the PR would start among PRs the collective "we" would like to see happen, in some way or form.

Soo, why does it have a 'blocked' tag?

I felt it was blocked by some other PR, but that no longer applies.

Let's be serious about this PR - added it to 1.24 O:) Maybe not everything would get in main in this time frame, but at least the PR would start among PRs the collective "we" would like to see happen, in some way or form.

Soo, why does it have a 'blocked' tag?

I felt it was blocked by some other PR, but that no longer applies.

ok, thanks.
Rebased with main, updated pre-commit hook versions and added f-string conversion flags to pass RUF010.

/packit test

I've made some mistakes that caused the tests to fail, like not realizing some of the functions in test_utils were missing classmethod decorator.
It's safe to say I've learned my lesson by opening a PR like this. Someone put me out of my misery :)

/packit build

First, thanks much for taking time and doing such a significant code cleanup, @martinhoyer! Sorry, I got to it only today. It's a bit longer reading :-) From what I've seen, the changes look reasonable and beneficial but probably not a good idea to merge them now, right before the 1.24 release. What about trying to get them in early after the release?

Notes for some of the disabled checks:
TRY200, B904: Within an except clause, raise exceptions with raise ... from err or `raise from None. I've actually tried to implement PEP-3134, as it looks like a good practice to me, but ultimately figured it's best to ask about it first.

I believe raise ... from ... is the current policy. tmt has a custom exception printer, exceptions logged will look different than what would the native interpreter logged, but it does support (and expect) exception chaining. While I did add from ... to all places I noticed, I did not touch messages of these exceptions - I agree raise GeneralError(f"Invalid json syntax: {error}") => raise GeneralError(f"Invalid json syntax}") from error is much better, it may result in a patch a bit more verbose, changing a lot of places. +1 from me, I'd just recommend making it a dedicated patch, or even a series of patches, e.g. one for each subpackage or something, if it turns out to be a very common issue. Keep @psss in the loop, BTW, he's often commenting on consistent logging and error messages, such a change fits the description pretty well :)

@psss, would you be up for enabling the B904 check and modifying the existing raises that does not use raise from? If yes, should it be part of this PR? Any guidelines for standardization of error messages/exception handling?

The B904 check sounds good, makes sense to me. I'd suggest to cover that in a separate pull request though, this one is already large enough.

@psss Thanks for checking it out! I shouldn't make it so large. Initially, I thought we could drop unwanted commits and/or cherry-pick good ones.  Just let me know when to do a rebase.

Next release sounds good. Just let me know when to do a rebase.

I believe now would be the right time. Release is out, almost all approved pull requests merged. Let's fix existing conflicts, finish the review and merge soon. @martinhoyer, will you have some time this week?

I believe now would be the right time. Release is out, almost all approved pull requests merged. Let's fix existing conflicts, finish the review and merge soon. @martinhoyer, will you have some time this week?

I hope so. Let me try to do a rebase today/tomorrow.

I'm not quite sure about how to deal with RUF008 and RUF009.
@happz You've been doing the dataclasses from what I can see - any ideas?

I'm not quite sure about how to deal with RUF008 and RUF009. @happz You've been doing the dataclasses from what I can see - any ideas?

mutable-dataclass-default (RUF008) - yep, we don't want that, and even though some of our dataclasses do not use the dataclasses.field() anymore, this should be still helpful.
function-call-in-dataclass-default-argument (RUF009) - sounds good as well, but, since a good portion of our dataclasses uses tmt.utils.field(), I guess this might be ridden with false positives. mutable_default: list[int] = creating_list() is bad, I agree with the example, but ours some_key: List[str] = field(default_factory=list, normalize=normalize_string_list) is perfectly common and valid in tmt code base. There does not seem to be any list of acceptable callables, or a "shadow field" variable, that would help. We can try to enable this one, but it's probably not going to be as useful as other checks.

mutable-dataclass-default (RUF008) - yep, we don't want that, and even though some of our dataclasses do not use the dataclasses.field() anymore, this should be still helpful.

Sorry, do you mean we don't want that check, or we don't want the existing code to remain as is?

function-call-in-dataclass-default-argument (RUF009) - sounds good as well, but, since a good portion of our dataclasses uses tmt.utils.field(), I guess this might be ridden with false positives. mutable_default: list[int] = creating_list() is bad, I agree with the example, but ours some_key: List[str] = field(default_factory=list, normalize=normalize_string_list) is perfectly common and valid in tmt code base. There does not seem to be any list of acceptable callables, or a "shadow field" variable, that would help. We can try to enable this one, but it's probably not going to be as useful as other checks.

RUF009 takes extend-immutable-calls option. Perhaps we can use that?

mutable-dataclass-default (RUF008) - yep, we don't want that, and even though some of our dataclasses do not use the dataclasses.field() anymore, this should be still helpful.

Sorry, do you mean we don't want that check, or we don't want the existing code to remain as is?

Oh, sorry :)) Yes, the check looks like a good fit, we do not want mutable defaults of dataclass fields :)

function-call-in-dataclass-default-argument (RUF009) - sounds good as well, but, since a good portion of our dataclasses uses tmt.utils.field(), I guess this might be ridden with false positives. mutable_default: list[int] = creating_list() is bad, I agree with the example, but ours some_key: List[str] = field(default_factory=list, normalize=normalize_string_list) is perfectly common and valid in tmt code base. There does not seem to be any list of acceptable callables, or a "shadow field" variable, that would help. We can try to enable this one, but it's probably not going to be as useful as other checks.

RUF009 takes extend-immutable-calls option. Perhaps we can use that?

Ah, I missed there are options. Right, this one looks like the exact control we'd like to extend with tmt.utils.field. That should make the check usable for tmt code.
So it's +1 & +1 :)

So it's +1 & +1 :)

Any chance you could do the necessary changes please? :) @happz

So it's +1 & +1 :)

Any chance you could do the necessary changes please? :) @happz

Not in this PR, but I'd love to add one more once this one's sorted out, to enable the rules and make them pass. No problem.

Looking at some of the test failures and scratching my head over how would the changes in this PR possibly caused them. Help? :)

/tests/libraries/local - this seems to be unrelated to your patch, I've seen it failed elsewhere as well, https://github.com/teemtee/tmt/pull/2125#issuecomment-1589205355
/tests/multihost/* and /tests/report/* - these refer to multihost prepare method, but that one has been recently removed from tmt code - I see it re-added here: https://github.com/teemtee/tmt/pull/2014/files#diff-2f45e2684afbb7caf4a24add9251b6ca1c4d678c04326cc830d7597d93d29f65R224

The libraries bug should be fixed by https://github.com/teemtee/tmt/pull/2147

Thanks. Just the https://github.com/teemtee/tmt/pull/2147 remains then.

@psss rebased

Resolved new conflicts with main, @happz's remarks and updated ruff version, as it fixed one noqa.


Spill formulas not being retained when updating workbook

Hi,
I have an Excel workbook with some spill formulas in but when opening the file with "Open-ExcelPackage" and then closing it again, the formulas are surrounded by curly braces and therefore do not work when the file is opened in Excel.
How can I edit the file and retain these values?
I've created a sample file. The tab Data has a data table and the Stuff tab has a spill formula.
Here is the spill formula before using "Open-ExcelPackage":

... and here is the same view after using "Open-ExcelPackage" and "Close-ExcelPackage":

As you can see the formula is surrounded by braces and no longer works as a spill formula, so adding new rows to the data table is not reflected in the "stuff" tab (in fact one is, but no others are)

Book1.xlsx
Here is the sample file

Do you only do Open-ExcelPackage and Close-ExcelPackage and that changes?

Yes that is all that is needed to cause the issue

Any update on this issue?

No update.
I see this in the cell. Did you create the xlsx with ImportExcel?
The _xlfn_... is something that is done for certain things.

No, the workbook was initially made with Excel.

Post to unstale

Is this fixed then?

No, not going to be able to look at it for now. It's in the backlog. If more folks have the issue, I can bump the priority.

👍

Hello,
I have the same issue with cells containing INDIRECT and TEXTSPLIT functions.
For the INDIRECT cells, the automatic addition of curly braces has no effect, but for the TEXTSPLIT cells, it prevents spilling to adjacent cells and since I use this formula to perform data validation in another cell (and show a dropdown of possible values), it only shows the first choice in the dropdown instead of all choices (the other choices would have spilled in adjacent cells to the right of the cell with the TEXTSPLIT formula.
I believe Excel 365 automatically adds curly braces (array formula) to formulas that are not supported by the current version of Excel. Since TEXTSPLIT is a new Excel 365 formula and the server where I use ImportExcel doesn't have Excel installed, I believe this is why the curly braces are automatically added when I re-open the workbook...

It looks like it's not linked to new formulas either, as I was able to reproduce the error by replacing the new TEXTSPLIT formula with the legacy FILTERXML formula.
I have attached an example Excel file. If you open it in Excel, both versions of the formula result in a spill over. And this is the real issue here. It looks like ImportExcel doesn't support spill over. If you use Open-ExcelPackage and immediately Close-ExcelPackage on this example file, then open it with Excel, you will see that the formulas have been changed to array formulas.
EPPlus 7 added support for dynamic arrays and spill over, as explained here: https://www.epplussoftware.com/en/Developers/EPPlus7.
Which version of EPP does ImportExcel use ?

ImportExcel uses the free version of EPPlus, 4.5. Sounds like they fixed it moving forward. I don't have any plans to migrate to the latest EPPlus tho

That's too bad, especially since I cannot find a reliable workaround to create a dynamic data validation list.
I've tried to remove the array formula and recreate the spillover formula by editing the spreadsheet as a ComObject: it works but it requires Excel installed on the server, which is a no go.
I've also tried to switch to transform the dynamic spillover TEXTSPLIT formula into a static list of cells, each INDEXing into the TEXTSPLIT array, and then changing the data validation list source from =SpillOverCell# to =OFFSET(INDEX(INDIRECT("SpillOverCell"), 1), 0, 0, 1, COUNT(IF(INDIRECT("SpillOverCell")="", "", 1))) (which essentially removes blank cells in the static range), but for some reasons, every time I close and reopen the file, the dropdown list only shows the first cell in the static range. If I open the data validation window in Excel and click OK without changing anything, it works again. Until I close the file. Frustrating !!!
I might consider macros, but I'm not sure if ImportExcel can work with XLSM files. And macros are usually frowned upon at my job...

Hello, I have the same problem with my excel file, a formula is "converted" to an array when using Open-ExcelPackage and Close-ExcelPackage.
Did someone found a workaround?
Many thanks

I ended up creating a macro to fix the broken formula automatically when the workbook opens. Not ideal, but that's the only reliable solution I could find.

I ended up creating a macro to fix the broken formula automatically when the workbook opens. Not ideal, but that's the only reliable solution I could find.

Do you have an example of the macro?
I do not know where to start

Here is what I did, you will need to rename "Helper" & "IpAddressesDropdownList" according to your own workbook  :
# ImportExcel automatically transforms spillover dynamic arrays into CSE array formulas, breaking data validation dropdown lists.
# Using the legacy method of editing an Excel file with a ComObject, to remove the array formula and replace it with a spillover formula would be a solution,
# but it requires Excel to be installed on the server.
# Instead, create a VBA macro that will run when the workbook opens and replaces the broken array formulas with the initial spillover formulas.
# The array formula must be cleared before applying the spillover formula, otherwise you get a "You can't change part of an array" error.

$thisWorkbookMacro = @'
Private Sub Workbook_Open()
    On Error Resume Next
    Sheets("Helper").Range("IpAddressesDropdownList").CurrentArray.ClearContents
    Sheets("Helper").Range("IpAddressesDropdownList").Formula2 = "original spillover formula"
End Sub
'@

$reportFilePathWithMacros = $reportFilePath -replace '\.xlsx$', '.xlsm'
Move-Item -Path $reportFilePath -Destination $reportFilePathWithMacros
$xl = Open-ExcelPackage -Path $reportFilePathWithMacros
$wb = $xl.Workbook
$wb.CreateVBAProject()
($wb.VbaProject.Modules | Where-Object Name -EQ 'ThisWorkbook').Code = $thisWorkbookMacro
Close-ExcelPackage -ExcelPackage $xl

Here is what I did, you will need to rename "Helper" & "IpAddressesDropdownList" according to your own workbook :
# ImportExcel automatically transforms spillover dynamic arrays into CSE array formulas, breaking data validation dropdown lists.
# Using the legacy method of editing an Excel file with a ComObject, to remove the array formula and replace it with a spillover formula would be a solution,
# but it requires Excel to be installed on the server.
# Instead, create a VBA macro that will run when the workbook opens and replaces the broken array formulas with the initial spillover formulas.
# The array formula must be cleared before applying the spillover formula, otherwise you get a "You can't change part of an array" error.

$thisWorkbookMacro = @'
Private Sub Workbook_Open()
    On Error Resume Next
    Sheets("Helper").Range("IpAddressesDropdownList").CurrentArray.ClearContents
    Sheets("Helper").Range("IpAddressesDropdownList").Formula2 = "original spillover formula"
End Sub
'@

$reportFilePathWithMacros = $reportFilePath -replace '\.xlsx$', '.xlsm'
Move-Item -Path $reportFilePath -Destination $reportFilePathWithMacros
$xl = Open-ExcelPackage -Path $reportFilePathWithMacros
$wb = $xl.Workbook
$wb.CreateVBAProject()
($wb.VbaProject.Modules | Where-Object Name -EQ 'ThisWorkbook').Code = $thisWorkbookMacro
Close-ExcelPackage -ExcelPackage $xl

Great, thank you so much for your help, i'm gon a try it.

Thanks, it works perfectly.
Thank you for your help.

Glad to be of help!
On Tue, 3 Sept 2024, 22:18 Emilius256, @.***> wrote:

Thanks, it works perfectly.
Thank you for your help.
—
Reply to this email directly, view it on GitHub
https://github.com/dfinke/ImportExcel/issues/1302#issuecomment-2327361767,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJV2OKX7XPWKZTKHM3TC323ZUYKPXAVCNFSM6AAAAABJNTBIESVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRXGM3DCNZWG4
.
You are receiving this because you commented.Message ID:
@.***>

Cool, gread to see $wb.CreateVBAProject() used. Very rare to see it in the wild :-)


Build instance with default configuration only when needed

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@yegor256 Done! FYI, the full log is here (took me 2min)

@rultor release, tag is 0.0.3

@rultor release, tag is 0.0.3

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.3

@yegor256 Done! FYI, the full log is here (took me 5min)

@valery1707 thanks!


Update OTEL client to 1.33 and Go to 1.23

It also includes some fixes to address test failures.

I'm looking into some things.

@ryanrolds may I add some commits bumping the version of testcontainers-go, so that the tests are more accurate?

@ryanrolds may I add some commits bumping the version of testcontainers-go, so that the tests are more accurate?

Feel free. I think this is a in an OK state. Please review. :)

No problem. :) More PRs incoming. I've got this working in our CI and I'm working on reducing cardinality and adding more metrics. I've noticed an issue with "duration"/time being zero. I may be making a change to junit-go to correct the issue, I'm still investigating.

Are you OK with me merging? How do you want to handle that? My only concern is the test hasn't run on the latest change.

Should be fixed.

Merged, thanks! I'm submitting the bump of testcontainers, and some tests cleanups now


Update storage size for kops-presubmits

Issue #, if available:
Description of changes:
Kops-Presubmit jobs are failing in eks-distro-build-tooing this should bump the storage to allow the jobs to complete
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


react native upgrade 0.64.2 to 0.66.1

New Version
0.66.1
Old Version
0.64.2
Build Target(s)
buildToolsVersion = "30.0.2" compileSdkVersion = 30  targetSdkVersion = 30
Output of react-native info

Task :app:checkDevDebugAarMetadata FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings
187 actionable tasks: 180 executed, 7 up-to-date
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:checkDevDebugAarMetadata'.

A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-30).
Dependency: androidx.core:core:1.7.0.
AAR metadata file: /Users/malikhezretov/.gradle/caches/transforms-3/8dffba8f50f81940e51ed01576f31fbd/transformed/core-1.7.0/META-INF/com/android/build/gradle/aar-metadata.properties.

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

Get more help at https://help.gradle.org

BUILD FAILED in 31s
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: ./gradlew app:installDevDebug -PreactNativeDevServerPort=8081
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:checkDevDebugAarMetadata'.

A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-30).
Dependency: androidx.core:core:1.7.0.
AAR metadata file: /Users/malikhezretov/.gradle/caches/transforms-3/8dffba8f50f81940e51ed01576f31fbd/transformed/core-1.7.0/META-INF/com/android/build/gradle/aar-metadata.properties.

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

Get more help at https://help.gradle.org

BUILD FAILED in 31s
at makeError (/Users/malikhezretov/autumn-frontend-mobile/node_modules/execa/index.js:174:9)
at /Users/malikhezretov/autumn-frontend-mobile/node_modules/execa/index.js:278:16
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async runOnAllDevices (/Users/malikhezretov/autumn-frontend-mobile/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:106:5)
at async Command.handleAction (/Users/malikhezretov/autumn-frontend-mobile/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js:192:9)

info Run CLI with --verbose flag for more details.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Issue and Reproduction Steps
Upgrade react native version manually using React Native Upgrade Helper from 0.64.2 to 0.66.1.
Updated files

yarn
yarn android

No luck so far @kabus202

@malikhautumn  this worked for me:
rm -r $HOME/.gradle/caches/
cd android
./gradlew cleanBuildCache
./gradlew clean; cd ..
rm -rf node_modules; yarn;
npx react-native run-android

I still get this error @kabus202, the minCompileSdk=31 still in this file /Users/malikhezretov/.gradle/caches/transforms-3/8dffba8f50f81940e51ed01576f31fbd/transformed/core-1.7.0/META-INF/com/android/build/gradle/aar-metadata.properties.

To get a successful build for compileSdkVersion 30, just change the minCompileSdk to 30 (set minCompileSdk=30) on the aar-metadata.properties.

[ ] cd android
[ ] ./gradlew cleanBuildCache
[ ] ./gradlew clean
[ ] cd ..
[ ] rm -rf node_modules
[ ] yarn install
[ ] yarn start

cd android
./gradlew cleanBuildCache
./gradlew clean; cd ..
rm -rf node_modules; yarn;

cd android
./gradlew cleanBuildCache
./gradlew clean; cd ..
rm -rf node_modules; yarn;

cd android
./gradlew cleanBuildCache
./gradlew clean
cd ..
rm -rf node_modules
yarn install
yarn react-native run-android

Getting the same here after upgrading from v0.60 to v0.64

same issue here

same issue here

I didn't upgrade but I have this problem too


mkdocs devtools image

Create a devtools image for mkdocs - this will basically do the same as the devtools for coop-playbook.

Work started here: https://github.com/coopnorge/engineering-docker-images/tree/iwana-20220428T0859-mkdocs

With Inventory we now use TechDocs to publish documentation inside of Inventory. Backstage TechDocs Engineering Image that covers the required tool chain and TechDocs GitHub Actions Workflow that covers CI and deployment of the documentation.


Set transformers version for ts generation test

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


[Help]

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
I want to train it in huggingface. How to do it
Expected Behavior
No response
Steps To Reproduce
I want to train it in huggingface. How to do it
Environment
- OS: Ubuntu 20.04
- Python:3.8
- Transformers:4.26.1
- PyTorch:1.12
- CUDA Support (`python -c "import torch; print(torch.cuda.is_available())"`) :True

Anything else?
No response

we havee same question

I have same question.

I have same question.


The brand attribute should be deletable

Bug report
Admins should be able to remove the brand attribute when creating a new attribute family.
Preconditions
Please provide as detailed information about your environment as possible.
1. master

Steps to reproduce
It is important to provide a set of clear steps to reproduce this bug.If relevant please include code samples.
1. Go to Catalog -> Attribute Families
2. Create a new attribute family
3. Try to remove the brand attribute from the table.

Expected result

Actual result

Hi @ghermans,
The brand is a system attribute it can't be deleted.

I'm sorry for butting in, but I think brand should be removeable because
custom family attributes from version 1.2.0 might break some function when migrating to master branch. see #4358
The current master have lots of attributes that are non-removable

Hi @kukocrunch,
Yes these attributes can't be removed as these are systems value. For brand i will let you know.

there is a option to select brand but I didn't find any page to add brand. can you provide link?

@YK-cbl
To add brand options, go to admin/catalog/attributes and search for brand attributes https://prnt.sc/w76lg4

@vaishaliwebkul thanks for this also I need 1 help. I want to create a product in which user can also add other product. For ex. I want to add pizza and also provide option to check box to select sauce( not added, chilly, tomato etc.) if user check chilly sauce than some amount added to base price. How to add these type of products

@YK-cbl please read the following blog https://bagisto.com/en/how-to-create-configurable-product-in-bagisto/

@ghermas I need it like add-ons not configurable product. like if any vendor want to show 'add sauce'  option in pizza on product page than we enable it from back-end. so he just check "Add Chili Sauce" and price updated. similar if anyone don't want this option than we disable it for that product.
I need just like Simple Pizza S, M, L and add sauce option
not like  pizza s chili sauce, pizza s tomato sauce,  pizza m chili sauce, pizza m tomato sauce

Hi @YK-cbl,
The first phase you can easily make i.e. you need to add an attribute named as is_chilli_sauce_added or some other name. Then you need to add that attribute to your attribute family. Now you have a record of which product has sauce added or which product not.
The second phase is something that you need to customize at your end.

@kukocrunch @YK-cbl
the main bug is already resolved in the master branch so I am closing this issue.
If you have any support query, feel free to post a new topic here https://forums.bagisto.com/


Error when inserting variable within .then block

I have a few functions that return promises. if I add any code within the then block, like a variable declaration, my then I get a compile error. I'm pretty confused as to why and any help is appreciated.

(no errors above)

(above error is)
/Users/matthewchung/Documents/Versame/ios/starling-ios/Starling/Classes/Realm/RealmManager.swift:41:29: Cannot convert return expression of type 'Promise<Array>' to return type 'AnyPromise'
and here is how I am creating my promises
    func createChildWordSamples(filename:String, childName:String) -> Promise<Array<String>> {
        return Promise { fulfill,reject in

        let startedTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.1 * Double(NSEC_PER_SEC)))
        dispatch_after(startedTime, dispatch_get_main_queue(), {

            if let url = NSBundle.mainBundle().URLForResource(filename, withExtension: "csv") {
                //reading
                do {
                    let text = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
                    let lines = text.componentsSeparatedByString("\n")
                    let realm = try! Realm()
                    try! realm.write({ () -> Void in

                        for line in lines {
                            let components = line.componentsSeparatedByString(",")
                            var date = self.formatter.dateFromString(components[0])!
                            date = NSDate(timeIntervalSince1970: date.timeIntervalSince1970 + self.delta!)
                            let info:[String:AnyObject] = ["childId":childName, "count":Int(components[1])!, "interval":Int(components[2])!, "timestamp":date]
                            let sample = WordSample(info: info)
                            realm.add(sample, update: false)

                        }
                    })
                    fulfill(lines)
                }
                catch {/* error handling here */}

            }
        })
        }
    }

Sorry for the delayed response. If you haven't already, try specifying the return type in your closures that are returning promises. This has historically satisfied the Swift compiler in circumstances like these.

got it. thanks!


Old versions of fuse have read-only config file

Description
This causes the probe to loop on startup, even though everything is fine.
INFO[0011] [hostagent] Waiting for the essential requirement 4 of 4: "/etc/fuse.conf (/etc/fuse3.conf) to contain \"user_allow_other\""
INFO[0051] [hostagent] Waiting for the essential requirement 4 of 4: "/etc/fuse.conf (/etc/fuse3.conf) to contain \"user_allow_other\""
INFO[0091] [hostagent] Waiting for the essential requirement 4 of 4: "/etc/fuse.conf (/etc/fuse3.conf) to contain \"user_allow_other\""

-rw-r----- 1 root fuse 297 Jun  3 15:31 /etc/fuse.conf
Seen with Ubuntu 15.04, but only when enabling the mounts (with sshfs)

The default was changed in Ubuntu 20.04 (fuse 2.9.3-5)
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733312

i.e. suggested change is to use 'sudo grep`, when checking for the config
pkg/cidata/cidata.TEMPLATE.d/boot/35-setup-packages.sh:		if ! grep -q "^user_allow_other" "${fuse_conf}"; then


Enterprise Read-only Domain Controllers should be documented as a Special Identity based on its behavior

The "Enterprise Read-only Domain Controllers" looks similar to "Enterprise Domain Controllers", which is documented as a Special Identity in this page.
Contrary to other special identities, "Enterprise Read-only Domain Controllers" exist as an AD group in the "Users" container and we can see its member. However, even when RODC are present in the forest it stays empty:

But, when a security token is created for an RODC, it automatically contains "Enterprise Read-only Domain Controllers":

So it isn't really like other special identities, but it behaves like one.
Shouldn't it be documented in this special identities page?
Another option would be to describe this in https://docs.microsoft.com/en-us/windows/security/identity-protection/access-control/active-directory-security-groups with the same "Membership is controlled by the operating system" sentence.

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

ID: 486e8a12-8230-6ae2-264f-73c76b266682
Version Independent ID: 2f47f94f-b416-beac-c75d-8908e4000e66
Content: Special Identities (Windows 10) - Windows security
Content Source: windows/security/identity-protection/access-control/special-identities.md
Product: w10
GitHub Login: @Dansimp
Microsoft Alias: dansimp

We just migrated this article (and a few others) to the Windows Server content, and they may have addressed this feedback at the same time.
https://docs.microsoft.com/windows-server/identity/ad-ds/manage/understand-special-identities-groups#feedback
So I'm closing this feedback. If you have any further comments, please open new feedback on the new article.

Indeed it was added! There are many mistakes in the content though but I'll report them there.


Update german

sidenote: I think "Text direction" would be easier to understand than "Language direction"

Thanks!!

"Language direction" in this case is the direction the language is read, for example Arabic is right to left and English left to right.  I feel like "text direction" doesn't convey that in this context, at least in English or Spanish, maybe in German it does.

If you are curious, this relates to me trying to add support for rtl languages after a contributor added Arabic localization. You can read about how it's going here: https://github.com/binarynonsense/comic-book-reader/pull/110

"Text Orientation" might be the correct tern (at least it is in regards to 'up to down' text like in some east asian languages)

Maybe I didn't explain it too well, what I mean is this text will be an option in the preferences for toolbar, named direction, where you will choose between "Language Direction", "Right to Left" and "Left to Right". With Language Direction implying that instead of chossing one you let the app use the direction from the current language... maybe it'd be better to name it "Use Language Direction", or "Same as Language Direction"? I feel like text orientation doesn't convey it either.

"Writing System" is probably the most accurate since it implies both alphabetical differences and differences in formatting

In UI design and css they use the term direction (and it limits itself only to left to right or right to left), and I would like to make clear that with this option the value is inferred from the chosen Language.

This is specific to the horizontal direction in which the UI, in this case the toolbar, is set. For ltr "mode" it's like it has been so far, but in "rtl" most things are mirrored. what I'm trying to convey is that the horizontal layout is set to ltr or rtl either by setting it explicitly or inferring it from the selected language, which can of ltr (English) or rtl (Arabic) direction.
This is all a bit new to me, so I'm figuring things out as I go :)

Maybe "Infer from Selected Language"?

i think so, too;
most other things i could find are even more vague

Yeah, I have a lot of trouble some times trying to find something sort but meaningful :) I'll change it to "Infer from Selected Language" then. Thanks for the feedback!!


[SDC] Move help button location to after question title

Problem
Current help button is located after instructions field, which looks awkward if there's no instructions text
Describe the solution you'd like
EmCare implementation moved the help button to be located after the question title.
Describe alternatives you've considered
Could make this configurable, but don't think it is necessary at this time.

Or you want me to look into it?
cc @jingtang10

@santosh-pingle Sure. We will create PR for this in main repository.

@khyativyasargus thanks!, is there any approximate date by which we can expect the pull request?

@santosh-pingle Yes, You can expect all PRs done by 24th April, Monday. Let me know if it's needed before that. Thanks!


.github/workflows and .vscode

I want to remove them. Any objections?

I think I'll wait till the end of 29th of February. We have a leapyear this year. 👍


added parameter 'session_2fa'

It was not possible to authenticate with 2-step authentication because
https://github.com/waza-ari/kasapi-php/blob/master/src/KasApi/KasApi.php#L321
if (!$this->paramIsAllowed($param, $function))
                throw new KasApiException("API parameter '$param' may not be used");

prevented the authentication.
The session_2fa parameter is added, which is necessary to successfully use accounts with 2-step authentication.

Hi, thanks for your PR!
To be honest, this library is very old and should be considered unmaintained. It has last been updated 6 years ago, personally I don't have access to an All Inkl account anymore (nor do I even use PHP anymore).
I'm happy to merge the PR, I assume you've tested it accordingly? As you're still using it, would you be interested in helping maintaining this?
Regards
Daniel


GUI Login: remove OpenId and Google logins

In the login GUI, the "OpenId" and te "Google" buttons should be removed

Test OK: both buttons "Google" and "OpenId" have been removed.
Ready to be pushed on the live system


[Link update] files => downloads

Old link is currently still active, but a HTTP 302 redirect to the new link.

Looking at this, I'm thinking we may want to link to https://rakudo.org/star instead?

Yes indeed. Changed link.


Please fix, lethal errors will occur

you have the ,,,"BSD 2-Clause"''' License on your ,,,HOBBY PROJECT'''
I believe this is a lethal mistake?
Please fix this as soon as possible!

my boss: const funct pointr


The ADO implementation does not work

Hello,
After the implementation of all the steps of CI/CD with ADO, the created artifacts are not pulled by the Flux Agent and the deployment is not successful. To give more context, the manifest files are created in the gitops repo after the CI but never deployed to AKS
However, after making some changes on the GitHub alternative mentioned in the doc, the pods are deployed.
Please let me know if you need more information.
Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 72579f7e-b040-d514-cf8f-422a66ceb0b0
Version Independent ID: 22d40926-4a12-7387-61b5-04805b1d5c83
Content: Tutorial: Implement CI/CD with GitOps (Flux v2) - Azure Arc
Content Source: articles/azure-arc/kubernetes/tutorial-gitops-flux2-ci-cd.md
Service: azure-arc
Sub-service: azure-arc-kubernetes
GitHub Login: @eedorenko
Microsoft Alias: iefedore

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

@hailugebru Thanks for your feedback.
Assigning to content author @eedorenko  for review.

Hello,
Can I work with the author on this one? I have the running deployment and I
can show him the setup.
Thank you,
Hailu
On Sun, Nov 13, 2022 at 8:37 PM SwathiDhanwada-MSFT <
@.***> wrote:

@hailugebru https://github.com/hailugebru Thanks for your feedback.
Assigning to content author @eedorenko https://github.com/eedorenko for
review.
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/100833#issuecomment-1312928965,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZK2ZBYXZ45URRXCZNLRFCDWIGJWXANCNFSM6AAAAAARUPPC2I
.
You are receiving this because you were mentioned.Message ID:
@.***>

#reassign:JnHs

@hailugebru

However, after making some changes on the GitHub alternative mentioned in the doc, the pods are deployed.
What changes did you have to make?

Hi @hailugebru - first of all, I apologize for the long time it took to respond to your issue. As we haven't heard more on the question above related to the changes you made, I'm going to close this issue now. We have updated the article since the time you left your feedback and I'm hoping those updates may have resolved the problems you were experiencing. However, if this is not the case, please let us know and we can investigate further. Again, I'm sorry it took so long to respond, and thank you for taking the time to share your feedback and help us improve the docs.
#please-close


Fix bug in appendHtmlToElement with HTML5 parser.

The commit message below pretty much sums it up.  The main issue I was seeing was that DOMNodeInsertedIntoDocument was firing twice when using the HTML5 parser and innerHTML to insert nodes.  This was causing scripts to run twice.
Commit message:
When calling parse_fragment(html, element), the HTML5 parser already
appends new nodes to the target element.
Calling element.appendChild(p.fragment) after parse_fragment:
* rips the newly appended nodes off of the target element
* puts them into a new document fragment
* appends them back onto the target element
This causes DOMNodeInsertedIntoDocument to fire twice (once in
parse_fragment, then again in appendChild).
Relevant parts of the HTML5 code:
parser.parse_fragment sets the target element to be the root of the tree, and then parses the HTML and appends noes to it.  parser.fragment is a getter that calls tree.getFragment, which removes the newly created nodes from the target element and puts them in a new document fragment using reparentChildren.
I'm not sure how to add a unit test for this one, but this fixed the issue in my project that uses jsdom + html5.

I'm ok with it, thanks!


Put a crown behind the painting in Lanky's painting room

And make the painting not come back.

240 100 437
max size= ~32-40
maybe ban crowns to only make it a crate/dirt patch if it causes problems with enemy spawning in combination with glitches


Add libhwloc-dev for use with dma test in bist tool

Need to add hwloc for use in the fpga_dma_test.
Needed to get https://github.com/OPAE/opae-sdk/pull/317 to pass CI

Need code owner approval @OPAE/doc @OPAE/ci

Please note that hwloc is currently not whitelisted - approval is pending.

Weird, as hwloc is a dependency of boost, which is whitelisted.

HWLOC is approved on the whitelist. Lets merge this please.
https://whitelisttool.amr.corp.intel.com/view.php?id=7280


Filtering is not working properly

Describe the bug
I write the code for filtering product by its category in console its showing the filter product but in website its not working properly can you just find the bug and fix it
To Reproduce
Steps to reproduce the behavior:

Go to '../components/category.jsx'
Scroll down to line no 8
See error

Expected behavior
it should show the filtered products on the screen

can anyone solve this please

hey @martinyis  sorry for late replying
Yeah sure you can try I will assign you the task if you reply yes

Yes

I got lost in your files, I don't really understand where your Category component is used. But the problem is that when you run the filter function it doesn't send products back. So wherever your category component is located, you need to make a function there which will get a new products as soon as filter function is called

@martinyis you can find the file in this path "artism/components/category.jsx" and this file is linked with index.js file i mean all the products are fetched from index.js file
Hope you understand now🤗


feat(composer): Implement graceful shutdown

Summary
Implement graceful shutdown for composer tasks.
Background
Currently, composer tasks do not support any sort of graceful shutdown on a SIGTERM or so. Also, when certain tasks error out, there is no graceful way of exiting all the composer tasks.
Changes

Add a field to composer called composer_shutdown_channels which consists of the shutdown channels of the ApiServer, gRPC collector and Executor.
Add a field to composer called geth_collector_shutdown_channels which consists of the shutdown channels of each individual collector.
Implement a shutdown function which is called after a task exits due to an error or when a SIGTERM is called.

Testing
Builds and tests run successfully. Need to test it by deploying it.
Related Issues
https://github.com/astriaorg/astria/issues/795
closes

I will re-work shutdowns in a new PR.


Add meta descriptions to the blogs

Description

Related Issue(s)

Checklist

[ ] I have read the contribution guidelines
[ ] I have considered the performance impact of these changes
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

Some of these descriptions seems a little too long. Try to stick to one sentence and be between 50 and 160 characters. I will take a closer review as well in the next day or so.

@Hasmin-AC If you find issues, let's fix those in a follow up PR. And move forward with this right now.


⚠ Cioos National CKAN Sitemap has degraded performance

In d68fe07, Cioos National CKAN Sitemap (https://catalogue.cioos.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 23831 ms

Resolved: Cioos National CKAN Sitemap performance has improved in daedfff after 4 minutes.


Module node error with nested blocks

I ran into below issue when parsing python code with tree-sitter.
For below simple nested blocks, tree sitter gives an error node for the while block.

Increasing the depth of nested blocks as below, however, would turn the whole module node into an error node

Perhaps, it's related to #171

Hi, your examples are parsed like this now with the code from master:
while 1:
    if 1

(module [0, 0] - [2, 0]
  (while_statement [0, 0] - [1, 8]
    condition: (integer [0, 6] - [0, 7])
    (ERROR [1, 4] - [1, 8]
      (integer [1, 7] - [1, 8]))
    body: (block [1, 8] - [1, 8])))

while 1:
    if 1:
        for a in []:
            if 1

(module [0, 0] - [4, 0]
  (while_statement [0, 0] - [3, 16]
    condition: (integer [0, 6] - [0, 7])
    body: (block [1, 4] - [3, 16]
      (if_statement [1, 4] - [3, 16]
        condition: (integer [1, 7] - [1, 8])
        consequence: (block [2, 8] - [3, 16]
          (for_statement [2, 8] - [3, 16]
            left: (identifier [2, 12] - [2, 13])
            right: (list [2, 17] - [2, 19])
            (ERROR [3, 12] - [3, 16]
              (integer [3, 15] - [3, 16]))
            body: (block [3, 16] - [3, 16])))))))

So the problem reported seems to be fixed.

The playground uses outdated versions iirc


ci: update Go version to go1.16

:broken_heart: Build Failed

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2021-09-26T22:02:36.246+0000

Duration: 4 min 25 sec

Commit: 191fdbb34ca03dbb181366ac64983f1ef8beb528

Steps errors
Expand to view the steps failures

Running Go tests

Took 0 min 3 sec . View more details here
Description: gotestsum --format testname --junitfile junit-report.xml -- -v ./...

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

This failure is due to the change in go tool behaviour for installing executables; prior to go1.16, packages and executables are installed with go get, while after, executables are installed with the versioned go install invocation. The relevant part of the APM pipeline library still uses the go get invocation, which contaminates the go.mod and go.sum files.
I have confirmed this locally. I'm not sure how to move forward with this since this because a very wide-spread change as withGoEnv now needs to be taught about the difference between packages and executables.

Can you edit https://github.com/elastic/stream/pull/27/files#diff-ef8b2f5e4d21d81c0eba4754dea3a3dfc2c67d26284f195165b650cf4aff7beaL3 and replace current with master to double check everything works as expected after your changes in https://github.com/elastic/apm-pipeline-library/pull/1300
Then you can revert it and we can cut a release for https://github.com/elastic/apm-pipeline-library

I hope this is what you meant.

I'll cut a release now and then we can revert https://github.com/elastic/stream/pull/27/commits/a0fbfc408566b913c54b06db3402dad2d775329c
Thanks for verifying those changes 💯


Is it possible to open a port other than 80/443 for listening?

Looking to indicate a new listener port other than 80/443.

@chriskinsman  we will need to add a listener specific annotation for this since ingress resource itself doesn't support this.

Hi, any news on this feature ?

Any update on this ? Could we customize listener port ?

Any update on this ?

Any news on this issue? My customer requests the same and this issue is opened since one year. Thanks

@akshaysngupta any word on this?

we require this as well to be able to use public and private ip on different ports as AppGW does not support different IPs on one port.

@akshaysngupta Any ideas when this might be merged?
Would be useful to have this so we can expose HTTP/HTTPS workloads using both Public and private IPs (right now when I have HTTPS configured for Public IP then I cannot expose any HTTPS service over Private IP).

Any updates on this?

Seems to be released in 1.4.0 (annotation appgw.ingress.kubernetes.io/override-frontend-port).
Can we get an update of the Feature Roadmap so that it reflects current reality?
Thanks!


Error using ROS example

Hi, I was trying the ROS example and got the following error message. I think the most important one is about shmsrc. Roscore is running, I was using 23U445 USB3.0 Camera. Could you provide some help? Thanks

tcambin serial="39710010" name=source ! video/x-raw,format=BGRx,width=1920,height=1080,framerate=30/1 ! tee name=t t. ! queue ! videoconvert ! video/x-raw,format=RGB ,width=1920,height=1080,framerate=30/1! shmsink socket-path=/tmp/ros_mem t. ! queue ! videoconvert ! ximagesink

(python3:7342): GStreamer-CRITICAL **: gst_caps_get_size: assertion 'GST_IS_CAPS (caps)' failed

(python3:7342): GStreamer-CRITICAL **: gst_caps_get_size: assertion 'GST_IS_CAPS (caps)' failed

(python3:7342): GStreamer-CRITICAL **: gst_caps_get_structure: assertion 'index < GST_CAPS_LEN (caps)' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_get_value: assertion 'structure != NULL' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_set_value: assertion 'G_IS_VALUE (value)' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_get_value: assertion 'structure != NULL' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_set_value: assertion 'G_IS_VALUE (value)' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_get_value: assertion 'structure != NULL' failed

(python3:7342): GStreamer-CRITICAL **: gst_structure_set_value: assertion 'G_IS_VALUE (value)' failed
Press Enter to end program[ INFO] [1512085734.058685460]: Using gstreamer config from env: "shmsrc socket-path=/tmp/ros_mem ! video/x-raw-rgb, width=1920,height=1080,framerate=30/1,bpp=24,depth=24,blue_mask=16711680, green_mask=65280, red_mask=255 ! ffmpegcolorspace"
[ INFO] [1512085734.066234291]: using default calibration URL
[ INFO] [1512085734.066447095]: camera calibration URL: file:///home/nick/.ros/camera_info/camera.yaml
[ INFO] [1512085734.066766618]: Unable to open camera calibration file [/home/nick/.ros/camera_info/camera.yaml]
[ WARN] [1512085734.066896066]: Camera calibration file /home/nick/.ros/camera_info/camera.yaml not found.
[ INFO] [1512085734.067003056]: Loaded camera calibration from
[FATAL] [1512085734.075187251]: no element "shmsrc"

Hello
"width=1920,height=1080" can not work, since the camera's maximum resolution is 1280x960.  A frame rate of 30 fps is available.
Please update the code with 1280x960 in the tis constructor parameters. It is in tis_rosstater.py at
cam = tiscamera.Camera("17719924", 1920, 1080, 30, True, False)
It should be
cam = tiscamera.Camera("39710010", 1280, 960, 30, True, False)
Stefan

Thank you. I adjusted the values as you said. The same error persistes. I messed around a little bit and believe the problem is with ROS gscam. When I setup environment variable GSCAM_CONFIG and run 'rosrun gscam gscam' it complains no element 'xxx' whichever pipeline I try to run. Even thoses that would work when I call gst-launch directly. Any clues?

What's the test environment where the code is developed? Could you tell me your ROS version and Gstreamer version? I'm using kinetic with 1.0

The "xxx" is the interesting part. It seems, you need the GStreamer 0.10 modules to be installed, but I am not sure about that anymore. You may look at http://wiki.ros.org/gscam.
Please let me know, which modules "xxx" are missing. Thank you in advance!
Stefan

When I run the official example under ROS folder, the error was 'no element shmsrc'. I removed and reinstalled several packages to mess with 0.10 and 1.0 version of gst, and the original error disappeared. However, now it says something about unable to PAUSE the pipeline. I remember reading somewhere that this is a permission issue, so I chmod +777 to /dev/video0, yet the problem persists. I'm sorry that these information is vague. I will upload repeatable(hopefully) error scenario and screenshots as soon as possible. Meanwhile, could you make something out of what I said?

Does the standard pipeline
gst-launch-1.0 tcambin ! videovonvert ! ximagesink
give an image?

Yes it does. And I can get shmsrc and shmsink to work with gst-launch-1.0.

Hello.
I was trying the ROS example and got the following error message.
I use DFKAFUJ003 USB3.0 camera.
I'm running ROS indigo on ubuntu14.04.
Then I canged tis_rosstarter line 12 and run this.
cam = tiscamera.Camera("17719924", 1920, 1080, 30, True, False)
↓
cam = tiscamera.Camera("12710001", 640, 480, 30, True, False)
"エレメント "shmsrc" がありません" in following error massage means "no element "shmsrc" ".
So I checked whether I have installed gstreamer library correspond to "shmsrc" element or not typing command.
$ gst-inspect-1.0 shmsrc
Since I could find shmsrc detail , I think gstreamer library has been installed.
Because of my ROS distribution, I installed "ros-indigo-gscam" instead of "ros-kinetic-gscam"
Can I use this ROS example under ROS indigo?
$ ./tis_rosstarter
tcambin serial="12710001" name=source ! video/x-raw,format=BGRx,width=640,height=480,framerate=30/1 ! videoconvert ! video/x-raw,format=RGB ,width=640,height=480,framerate=30/1! shmsink socket-path=/tmp/ros_mem
Press Enter to end program[ INFO] [1513666463.044921393]: Using gstreamer config from env: "shmsrc socket-path=/tmp/ros_mem ! video/x-raw-rgb, width=640,height=480,framerate=30/1,bpp=24,depth=24,blue_mask=16711680, green_mask=65280, red_mask=255 ! ffmpegcolorspace"
[ INFO] [1513666463.047287782]: using default calibration URL
[ INFO] [1513666463.047340407]: camera calibration URL: file:///home/leus/.ros/camera_info/camera.yaml
[ WARN] [1513666463.047909559]: [camera] does not match name narrow_stereo in file /home/leus/.ros/camera_info/camera.yaml
[ INFO] [1513666463.047952862]: Loaded camera calibration from
[FATAL] [1513666463.049343617]: エレメント "shmsrc" がありません
[FATAL] [1513666463.049369666]: Failed to initialize gscam stream!
$ gst-inspect-1.0 shmsrc
Factory Details:
Rank none (0)
Long-name Shared Memory Source
Klass Source
Description Receive data from the shared memory sink
Author Olivier Crete<EMAIL_ADDRESS>Plugin Details:
Name shm
Description shared memory sink source
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstshm.so
Version 1.2.4
License LGPL
Source module gst-plugins-bad
Source release date 2014-04-18
Binary package GStreamer Bad Plugins (Ubuntu)
Origin URL https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad1.0
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstBaseSrc
+----GstPushSrc
+----GstShmSrc
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
ANY
Element Flags:
no flags set
Element Implementation:
Has change_state() function: 0x7f2e1432d910
Element has no clocking capabilities.
Element has no indexing capabilities.
Element has no URI handling capabilities.
Pads:
SRC: 'src'
Implementation:
Has getrangefunc(): gst_base_src_getrange
Has custom eventfunc(): gst_base_src_event
Has custom queryfunc(): gst_base_src_query
Has custom iterintlinkfunc(): gst_pad_iterate_internal_links_default
Pad Template: 'src'
Element Properties:
name : The name of the object
flags: readable, writable
String. Default: "shmsrc0"
parent : The parent of the object
flags: readable, writable
Object of type "GstObject"
blocksize : Size in bytes to read per buffer (-1 = default)
flags: readable, writable
Unsigned Integer. Range: 0 -<PHONE_NUMBER> Default: 4096
num-buffers : Number of buffers to output before sending EOS (-1 = unlimited)
flags: readable, writable
Integer. Range: -1 -<PHONE_NUMBER> Default: -1
typefind : Run typefind before negotiating
flags: readable, writable
Boolean. Default: false
do-timestamp : Apply current stream time to buffers
flags: readable, writable
Boolean. Default: false
socket-path : The path to the control socket used to control the shared memory transport
flags: readable, writable
String. Default: null
is-live : True if the element cannot produce data in PAUSED
flags: readable, writable
Boolean. Default: false

Hello
I am very sorry, I am not a ROS expert. I am able to install the standard package with apt-get and this supports GStreamer 0.10 only. Therefore, there can be a problem to get the old modules.
I do not know, what "ros-indigo-gscam" is. In case it uses GStreamer 1.0, then the pipeline for it must be adapted. It should be something like
shmsrc socket-path=/tmp/ros_mem ! video/x-raw, format=rgb, width=640,height=480,framerate=30/1,bpp=24,depth=24,blue_mask=16711680, green_mask=65280, red_mask=255 ! videconvert"
But I am not able to test this on my own
Stefan

@makabe0510 Hey Makabi:
After some messing around I solved the problem. It is likely cause by the lack of required gst packages. Roscam uses 0.1 (by default, it supports 1.0 in beta/experiment version too, but I didn't mess with that) version of gst while tiscamera uses 1.0. I forgot which exact package solved the problem but here's something that may be helpful:

@Nick-Zhang1996 your installed gstreamer packages list helped me to get it solved! after installing missing packages that I noticed from your list, it stopped outputting error related to shmsrc. Thanks!

@TIS-Stefan Hi, Stefan:
I use DFK 33UX290 camera.
I'm running ROS indigo on ubuntu14.04.
Also has the same issue as @makabe0510
Then I  tried running ROS kinetic on ubuntu16.04
After install @Nick-Zhang1996 missing packages.
I can use rqt_image_view to see image_raw now.
May I ask if the current TIS ROS sample only works on ROS kinetic on ubuntu16.04?
Or how can I use it on ROS indigo on ubuntu14.04?
By the way, how can I check the 3A setting works
cam.set_property("Exposure Auto", True)
cam.set_property("Focus Auto", True)
cam.set_property("whitebalance-auto", True)
Because there is no difference when I use rqt_image_view to check image_raw

Hi
"3A" is new to me :-)
The only way checking whether they work is having a look on the colored image. If it looks fine, then they work. That means, the average brightness of the image is 128, in case there is enough light and the colors are not greenish. However the camera runs the automatics per default.
The GStreamer plugins are created for Ubuntu 16.04, on older Kernels on 14.04 you will encounter issues.
 That is nearly the same, our ROS example script does.
In th pyhton script is a line like the follwing,
cam = tiscamera.Camera("17719924", 1920, 1080, 30, True, False)
The fifth parameter should be "True". If it is "False", you will get a raw image GRAY8 with bayer pattern.
Stefan

@TIS-Stefan Hi, Stefan:
I use DFK 33UX290 camera.
I'm running ROS kinetic on ubuntu16.04 now.
I have use the following command to list all ROS supported properties in gst plugins
cam.list_properties()
And it works well to set, get and see the image_raw in rqt_image_view now
But the ROI function is strange to me, I have get the property value to double confirmed.
// ROI command sequence
cam.set_property("Auto Functions ROI Control", True)
cam.set_property("Auto Functions ROI Left", 0)
cam.set_property("Auto Functions ROI Top", 0)
cam.set_property("Auto Functions ROI Width", 32)
cam.set_property("Auto Functions ROI Height", 32)
=> The ROI function seems no work
=> it does no cropping either 3A detected area
=> what is this ROI function for?

Hi
The automatics should look only on the ROI rectangle for adjusting the 3A. So if the image is very bright in the upper left corner only, the complete image should become darker.
Stefan

@TIS-Stefan Hi, Stefan:
As you said "So if the image is very bright in the upper left corner only, the complete image should become darker."
That's why I ask the question, that the ROI functions seems no work in your ROS sample code.
The test image is attached.

I use DFK 33UX290 camera.
My code is listed as following.
I have get the property value to double confirmed already.
Can you help me to check this ROI functions works well with gst plugins?
Maybe you can reproduce this situation also and find ROI works or not.
// ROI command sequence
cam.set_property("Auto Functions ROI Control", True)
cam.set_property("Auto Functions ROI Left", 0)
cam.set_property("Auto Functions ROI Top", 0)
cam.set_property("Auto Functions ROI Width", 32)
cam.set_property("Auto Functions ROI Height", 32)

Yes, that should have been the expected behavior.
However, If I try that with tcam-view,  it works as expected.
The exposure and gain automatics are still enabled and I think, the camera does not run in trigger mode (In this case, the image should become much brighter to the bottom, because the frame rate and not the exposure time will determine the real exposure time.)
You may build the examples/cpp files , then go into examples/cpp/build/tcam-view and run the tcam-view program
Stefan

@TIS-Stefan  Hi, Stefan:
The image test result is just like you mentioned in tcam-view.
But we use the ROS topic camera/image_raw to receive the image, which has no ROI effect in image.
I am using rqt_image_view to verify the ROS image.
Can you check how can I use your ROS example to get ROI function works well in ROS topic camera/image_raw ?
Thanks. :)

Do you run the x290 camera triggered? If yes, then the exposure time has no effect.
Also I must admit, I am totally unexperienced with ROS. Working with this is always a restart with high effort,
Is automatic for gain and exposure enabled? If not ....
However, I tested the sample tis_rosstarter.py:
import tiscamera
import time

# Open the camera. Parameters are serial number, width, height, frame rate, color and liveview.
cam = tiscamera.Camera("49619914", 1920, 1080, 30, True, True)

# Start the live stream from the camera and also "rosrun"
cam.start_pipeline()

# Set some properties
cam.set_property("Exposure Auto", True)
cam.set_property("Gain Auto", True)
cam.set_property("Brightness Reference", 128)

# ROI command sequence
cam.set_property("Auto Functions ROI Control", True)
cam.set_property("Auto Functions ROI Left", 0)
cam.set_property("Auto Functions ROI Top", 0)
cam.set_property("Auto Functions ROI Width", 32)
cam.set_property("Auto Functions ROI Height", 32)

xmax = 1880
xpos = 0
try:
    while True:
        if xpos == 0:
            xdir = 1

        if xpos == xmax:
            xdir = -1

        xpos += xdir
        cam.set_property("Auto Functions ROI Left", xpos)

        time.sleep(0.01)

except KeyboardInterrupt:
    print("Keyboard interrupt")

# Stop the camera pipeline.
cam.stop_pipeline()

print('Program ended')

The live view is enabled, so I can see it without ROS. The example works as expected. The ROI is moved on top from left to right and the automatic makes adjusts the image according to the ROI brightness.
Stefan


Request: Introduce optional caching to ExecuteScalar* methods

We are using postgis to generate MVT tiles which is binary content.
Example query:
let! tile = conn.ExecuteScalarAsync<byte[]>("select suburbs(@z,@x,@y)", param)

It would be great if we could introduce caching layer for ExecuteScalar* methods as well, as the functions are computationally expensive to calculate.

The fix is now available at RepoDb v1.12.5-beta4.

Closing this ticket now.


some screens are out of date

start from step 2 there is no (longer) an ios or bundle option

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

ID: 72df5e83-6b77-9864-2016-febdcec0e94c
Version Independent ID: 7ef7dad6-462c-347e-fd5a-e1b1f13ca26b
Content: Configuring an App in iTunes Connect - Xamarin
Content Source: docs/ios/deploy-test/app-distribution/app-store-distribution/itunesconnect.md
Service: unspecified
Product: xamarin
GitHub Login: @bradumbaugh
Microsoft Alias: brumbaug

Hi @jphellemons – thanks for calling this out. It looks like these screens have changed significantly since this doc was last updated. I've captured this item on our internal backlog. Appreciate the heads-up!

It's 2020 and still the guide is outdated!


fix: add auth flags for add repo command

Hello,
I am trying to migrate my current architecture with local helm charts to remote charts with your awesome plugin.
My charts repository is private (with basic auth) so I discovered when the command tries to pull my chart that it was rejected because of not providing credentials.
I edited the extension to pass credentials to the command (like it is made lower in the code).
However, i have not experience with Python and I do not know if my approach is the good one. But, it works well ! :)
I will be happy to listen your feedback about it and to know what it is the correct solution to fix that.
Thank you for your work !

Thanks @Tchoupinax, good catch!

You're welcome :)


Actions cannot specify that both the icon and the label should be displayed

Currently only one or the other is possible unless you override it in the initE where the action is added to the view. The action itself has no way to specify that it wants both shown though.

Closed by #1772