Use /srv for Travis cache path.

This further ensures what is tested in Travis and what is run in
the dev/prod env has the same ACL set. Should the installation steps be
fixed with fewer number of sudo's later on, then this is to be done
via changing ZULIP_SRV / ZULIP_SRV_PATH, VENV_CACHE_PATH,
EMOJI_CACHE_PATH, NODE_MODULE_CACHE_PATH.

Automated message from Dropbox CLA bot
@rht, it looks like you've already signed the Dropbox CLA. Thanks!

https://github.com/zulip/zulip/pull/6097/commits/de5d22aeaaa2f28ef8813b100b5222779253cafc fixes https://github.com/zulip/zulip/pull/5994#issuecomment-322054185

I tried this approach before, and it didn't work, because in Travis CI, /srv/ is not writable by the user they have maintaining the caches.  Have you tested pushing several commits to the master branch in your own fork signed up for Travis CI, the first doing this, and the next changing anything else?  That's usually what you need to do to properly test this sort of caching change.
It might be possible to address that by seeing if there's a step Travis lets you do before the caches are unpacked, where we could do the appropriate chmod/chown operation on /srv.

@rht I think maybe it makes sense to close this?  Or do you think you can resolve the issue I mentioned?

Heads up @rht, we just merged some commits that conflict with the changes your made in this pull request! You can review this repository's recent commits to see where the conflicts occur. Please rebase your feature branch against the upstream/master branch and resolve your pull request's merge conflicts accordingly.


Add more information to node describe

Should be ready to merge after #5137 and #5116

LGTM

Actually, can you add a test in hack/test-cmd.sh that verifies that the node describe includes one of these fields?

Just for process to manage merging, I'm removing status/lgtm given "Actually, can you add a test in hack/test-cmd.sh that verifies that the node describe includes one of these fields?"

Do we test kubectl describe in hack/test-cmd.sh?  I see only get test.

We don't, but we should.  [ "$(kubectl describe ... | grep something in the output)" ] I would consider acceptable.

@smarterclayton PTAL   I'll put another quick PR to test pod describe, service describe, etc.  After this one.

Merging.


Question: Get random anime of a specific genre

I was wondering if it's possible to get a random anime that belongs to a specific genre (like getting a random Shounen anime) since jikan.random() doesn't have any parameters related to that. Is there any hacky way to implement something like that?

Unfortunately jikan.random() simply wraps /random from Jikan, which doesn't take any input filters. For example /random/anime just returns any anime (although it might be limited SFW results only). You might want to do something like: use jikan.search to grab a handful of resulting animes that match what you want, and randomly grab from that set.
Something hacky like this is what I might do (I didn't include it in this example, but don't forget to rate limit):
import random
from jikanpy import Jikan
SHOUNEN_ID = 27 # You can find these in the /genres/anime endpoint
api = Jikan()
anime_set: dict[str, dict] = dict() # would use a set directly, but the anime comes back as a dict (unhashable)

for i in range(10):
    response = api.search(search_type='anime', query='', page=i+1, parameters={'genres':SHOUNEN_ID})
    for anime in response['data']:
         anime_set[anime['title']] = anime

random_anime_title = random.choice(list(anime_set.keys()))

Yeah this is pretty much what I needed. Gonna keep in mind to add a rate limit when I implement this in my code, thank you!


Browser always displays a vertical scroll bar with bottom status bar cropped

Gitea version: 1.4.2
Git version: 2.17.1.windows.2
Operating system: Windows 10 & Windows Server 2016
Database: SQLite
Can you reproduce the bug at https://try.gitea.io: yes
The right-side vertical scroll bar is always displayed, even when rendering pages shorter than the browser window, and the bottom status bar is alway cropped.
Tried both Chrome and Edge on different machines with different screen resolution.

Which browser did you use?

It's happening on both Chrome 67 and Edge 42.

Same here, visible in all browsers.
gitea -v
Gitea version 1.4.2 built with: bindata, sqlite

This is showing the issue on all my browsers/systems: https://try.gitea.io/mhaluska/test
But I can confirm that it has been resolved in (June 20) master version.

Closing as fixed in 1.5.0

@lafriks which PR fix this?


Crash on startup

The application closes after being frozen for a couple of seconds just after startup.
To Reproduce
I don't know how you can reproduce this issue but I have attached some crash dumps.
How can I get this up and running again? I have tried deleting the data via windows app settings and also uninstalling and reinstalling the application.
CrashDumps.zip

What version of app are you on?

Sorry for the late answer. I was on the latest Microsoft Store Version that was available. A couple of days later the issue just stopped and now the application works as intended again. Maybe there are some valuable insights in the dumps anyways.


Resources in use need to be listable from the CLI

as a developer I would like to clearly see what resources I am using on my project, this would include ec2s, and services (and their error messages)

This is done.  We may clean up the output in a later stage.


Check Qwen model

Results are quite odd, initial support added in #47 following tokenizer documentation and FAQ of the model.
Results are worse than expected.

Closing as doing more eval it seems correct. SOTA on chat hard, just something weird on the easier ones.


Roll engine ef99738bafc0..cf5d76c1720a (13 commits)

https://github.com/flutter/engine/compare/ef99738bafc0...cf5d76c1720a
git log ef99738bafc08861412655ec0a84e966c98c633a..cf5d76c1720ad1e72c097e72e0255312fe6aa685 --no-merges --oneline
cf5d76c17 [fuchsia] Add support for libs in packages (flutter/engine#10081)
c4c64896a Roll src/third_party/skia 829144cc76fe..d15571af2e1b (2 commits) (flutter/engine#10080)
25e5d597e Roll fuchsia/sdk/core/linux-amd64 from S_24mhItBb7pfUof8zsJPPSctC7xdlfjDEXEtyO25GYC to kU0OwJYlceN477ejdh9RXrl7Mp-wUTNvQozlaV96xmQC (flutter/engine#10079)
f7e0614b8 Change ParagraphBuilder to replace the parent style's font families with the child style's font families (flutter/engine#10074)
eb74f2ce7 One more luci fix (flutter/engine#10078)
6e732c7f1 Change flutter runner target for LUCI (flutter/engine#10075)
44ec59b70 Roll src/third_party/dart fedd74669a..9c148623c5 (70 commits) (flutter/engine#10066)
abf93699f Basic structure for flutter_jit_runner far (flutter/engine#10073)
3c76b90b2 Track clusters and return cluster boundaries in getGlyphPositionForCoordinates (emoji fix) (flutter/engine#10063)
e8fb641f6 Enable consts from environment in DDK for flutter_web (flutter/engine#10069)
bd3870219 [macos] Revert check on FlutterCodecs and refactor message function] (flutter/engine#10009)
d6e1a93e2 Roll src/third_party/skia e11dfd3da4d7..829144cc76fe (4 commits) (flutter/engine#10072)
d595af681 Roll fuchsia/sdk/core/linux-amd64 from XqtWTBni4xpYCTr7gqU7rFTuXNY1TZ_zOqBJrZM8c_kC to S_24mhItBb7pfUof8zsJPPSctC7xdlfjDEXEtyO25GYC (flutter/engine#10071)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (cbracken@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/6096079643213824

Commit queue failed; closing this roll.


Bump YBM CLI to 0.1.9

@kc-yb

Yes, the releases view here contains all the info: https://github.com/yugabyte/ybm-cli/releases (and users can compare revisions)
Yes, the CLI will periodically (once per day) check GitHub if there is a new release and prompt the users to update.
Yes, but it also feels like we would duplicate all this information from the GitHub repo. While we can automate this, it has not been a priority so far.

@cdavid This is great. Thanks for the clarifications.
Re (3) - can we add a link in the documentation page to these release versions? Please ignore if the link already exists.

Re (2) - just wanted to check that we don't do that for json output format. This might break scripting


Add inverse flag to lead paragraph component

We need to be able to display the lead paragraph component as white text on a blue background for the new taxonomy topic page designs.

Component Guide link

@maxgds Good spot, I'll add that now 👍


[Windows Logging] Init-rancher-logging-fluentd workload failed to start

What kind of request is this (question/bug/enhancement/feature request):
bug
Steps to reproduce (least amount of steps as possible):

Launch a cluster of 1 linux worker and 1 windows worker
Enable logging
After logging is enabled successfully, then disable logging
Enable logging again

Result:
init-rancher-logging-fluentd failed to start, error log:
mkdir : An item with the specified name C:\var\lib\rancher\fluentd\log already
exists.
At line:1 char:1
+ mkdir -p /var/lib/rancher/fluentd/log
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceExists: (C:\var\lib\rancher\fluentd\log:
String) [New-Item], IOException
+ FullyQualifiedErrorId : DirectoryExist,Microsoft.PowerShell.Commands.New
ItemCommand

If I manually delete the C:\var\lib\rancher\fluentd\ directory in the windows node, the cluster starts successfully.
Other details that may be helpful:
Environment information

Rancher version (rancher/rancher/rancher/server image tag or shown bottom left in the UI): rancher/rancher:master-head (9/6/2019)
Installation option (single install/HA): single

Version: master-head (9/14/19)
Confirmed fix.  Enable logging again to enable success


Refactor workflow

General refactoring and clean-up of workflow:
Changes

refactored Python scripts for clarity using type hinting where possible

using shiptv=0.4.1 package and containers for most processes since Python dependencies should already be installed (rich, typer, biopython, pandas, numpy)
typer for CLI argument parsing
added logging with Rich
for reading metadata into Pandas DataFrames, setting first column as index (index_col=0)
for merging metadata dataframes, using pd.concat on index instead of pd.merge
renamed Python scripts to match Nextflow process names

bin/filter_gisaid.py:

added concatenation of user sequences and filtered GISAID sequences to reduce duplication of data (no longer need CAT_SEQUENCES process)
added --max-gisaid-seqs to limit number of GISAID sequences to pull from large lineages
changed stats output to JSON for easier programmatic use

reorganized results output directory structure
moved all process modules from modules/nf-core/software/ to modules/local/; modules/nf-core/software/ should be reserved for unmodified nf-core tools modules only
renamed processes to match program name where possible (e.g. IQTREE_PHYLOGENETICTREE to IQTREE)
nextflow_schema.json descriptions and organization
aa_substitution_change to aa_mutation_matrix
process output files explicitly defined where possible (path '*.tsv' to path 'metadata.filtered.tsv')
updated docs in README.md, docs/usage.md; output.md needs to be updated still
bin/merge_metadata.py: combining Pangolin results and GISAID metadata into the same fields
Nextalign now using more cores (--jobs ${task.cpus}) and output files now explicit
removed unused process nw_reroot.nf
params.visualize_gisaid_metadata to params.select_gisaid_metadata; fixed issue with --select_gisaid_metadata workflow param due to default value set as "''"

Added

software version scraping and output to tab-delimited table pipeline_info/software_versions.tsv
--max_gisaid_filtered_seqs to limit the number of GISAID sequences to pull from large lineages when running bin/filter_gisaid.py (default: 100000)
workflow params to skip Nextclade (--skip_nextclade) and R SNP tree processes (--skip_snp_tree)

Updates

shiptv version 0.4.1

Removed

process CAT_SEQUENCES and modules/nf-core/software/cat/
emit: <name> for processes with only one output channel
unused/unnecessary files from repo

GitHub workflows
email assets (workflow not configured for sending emails)
conf/igenomes.config

bin/prune_down_tree_ete3.py; unused
modules/local/nw_reroot.nf; unused
Dockerfile; unused and not needed

CI

removed nf-core lint GitHub Action workflow since this workflow is not going to be added to nf-core at this time
added artifact uploading. shiptv.html on CI test pass; .nextflow.log and iqtree-*.log on fail.

IQ-TREE issues
IQ-TREE v2.1.2 seems to have sporadic issues with CI; others have seen the same issue:

BUG: IQTree 2.1.12 fails to run on input with ERROR: Tree taxa and alignment sequence do not match (see above)
iqtree/iqtree2 issue 11

I'm working on updating IQ-TREE to version 2.1.4-beta in Bioconda.
PR checklist

[X] This comment contains a description of changes (with reason).
[X] If you've fixed a bug or added code that should be tested, add tests!

[ ] If you've added a new tool - add to the software_versions process and a regex to scrape_software_versions.py
[ ] If you've added a new tool - have you followed the pipeline conventions in the contribution docs

[X] Ensure the test suite passes (nextflow run . -profile test,docker).
[X] Usage Documentation in docs/usage.md is updated.
[ ] Output Documentation in docs/output.md is updated.
[ ] CHANGELOG.md is updated.
[ ] README.md is updated (including new tool citations and authors/contributors).

@peterk87 For IQTree issue, there is no problem when I ran tests locally, still don't know why it failed intermittently with CI

@peterk87 For IQTree issue, there is no problem when I ran tests locally, still don't know why it failed intermittently with CI

@nhhaidee It may be an issue with -t NJ-R producing a tree with certain taxa dropped. Might be an issue with running it on Ubuntu or specific hardware. If the default fast initial parsimony tree by random order stepwise addition is used, then CI passes.

OK.
FYI: for nf-core-lint failed with files_unchanged, please update these files .nf-core-lint.yaml. I am running refactor workflow with my own data

/bin/filter_msa.py:
df = pd.read_table(input_metadata, index_col=0): dataframe of input_metadata does not contain strains of input sequences and reference sequence
df.loc[keep_samples, :].to_csv(output_metadata, sep='\t', index=True): failed by below error

KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer supported. The following labels were missing: Index(['WIN-AH-2021-OTH-0038-5-M1571316', 'MN908947.3',\n
'WIN-AH-2021-OTH-0038-2-M1571295'],\n      dtype='object', name='Virus_name'). See https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike"

/bin/filter_msa.py:
df = pd.read_table(input_metadata, index_col=0): dataframe of input_metadata does not contain strains of input sequences and reference sequence
df.loc[keep_samples, :].to_csv(output_metadata, sep='\t', index=True): failed by below error

KeyError: "Passing list-likes to .loc or [] with any missing labels is no longer supported. The following labels were missing: Index(['WIN-AH-2021-OTH-0038-5-M1571316', 'MN908947.3',\n
'WIN-AH-2021-OTH-0038-2-M1571295'],\n      dtype='object', name='Virus_name'). See https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike"

Thanks @nhhaidee
Please be aware that this is PR is a draft and not ready to be reviewed quite yet.
I'll let you know when it's ready. There is more testing that I need to do on my end.

@peterk87 OK. I just also do some tests at my end, will report bug if found so that you can fix it soon

Hi @peterk87 ,
I have some minor comments as below:

Code is now very clean and clear.
Missing Credits: nhhaidee/scovtree was originally written by Hai Nguyen and refactored by Peter Kruczkiewicz.
We are using scripts bin/align2alles.py, phylogenetic_tree_snps.r of ncov-tools (https://github.com/jts/ncov-tools) for plotting phylogenetic tree with SNP, please credit them.
bin/filter_msa.py: please see my concern in comments for line of code
Unable to run workflow with conda profile:

(nextflowenv) hnguyen@hnguyen-Precision-7750:~/Downloads/scovtree-refactor_1/scovtree-refactor$ nextflow run /home/hnguyen/Downloads/scovtree-refactor_1/scovtree-refactor -profile test,conda
N E X T F L O W  ~  version 21.04.0
Launching /home/hnguyen/Downloads/scovtree-refactor_1/scovtree-refactor/main.nf [high_almeida] - revision: 6216c3244d
Unknown method invocation isEmpty on Boolean type

Thanks,
Hai

Thanks @nhhaidee  for taking a look at the changes I made. Some things like #29 and #19 aren't implemented here yet.

* Code is now very clean and clear.

Thanks!

* Missing Credits: nhhaidee/scovtree was originally written by Hai Nguyen and refactored by Peter Kruczkiewicz.
  We are using scripts bin/align2alles.py, phylogenetic_tree_snps.r of ncov-tools (https://github.com/jts/ncov-tools) for plotting phylogenetic tree with SNP, please credit them.

Added in 9c75ffb

* Unable to run workflow with conda profile:

Do you have Conda installed and accessible on your PATH? I think the base env needs to be activated too.
I'm not sure what commit you're using. I don't think 6216c3244d corresponds to any commit I've made. Did you git clone the repo?

The code is now is able to support multiple lineages, please attached for the test result for lineages are B.1.618 and B1.617.2
shiptv_B1_617_2_B1_618.zip
There are 2 concerns that I have:

Downsampling multiple sequence alignment by  bin/filter_msa.py may drop or keep low number of number of strains for low abundance lineages (Ex: < 200 sequences like B.1.618). Below is the code that I did test, keep entire low abundance lineages and sampling large abundance lineages only, please let me know your comment on this

            df_total_len = len(df_less_n_gaps)
            df_stat = df_less_n_gaps.groupby('lineage').count()
            df_stat['abundances'] = df_stat['strain'] / df_total_len
            df_low_abundance_stat = df_stat[df_stat['abundances'] < 0.1]
            lineages_low_abundance = df_low_abundance_stat.index.tolist()
            df_low_abundance = df_less_n_gaps[df_less_n_gaps['lineage'].isin(lineages_low_abundance)]
            df_less_n_gaps.drop(df_less_n_gaps.index[df_less_n_gaps['lineage'].isin(lineages_low_abundance)],
                                inplace=True)
            df_sample = df_less_n_gaps.groupby('lineage').apply(
                lambda x: x.sample(int((len(x) / df_total_len) * threshold))).reset_index(drop=True)

            df_sample_strains = pd.concat([df_low_abundance, df_sample])

Prune tree for shiptv: how do we set criteria for branch distance? (https://github.com/nhhaidee/scovtree/issues/29). You can look at the tree attached and pay attention to the subtree of lineage B.1.618 with input sequence is WIN-AH-201-OTH-0041, I set max_tax = 75, the subtree is still quite large, if set max_tax is small (Ex: 20) then the tree will be too small. It would be nice if we could cut down unnecessary taxa, keep the tree is enough for reporting

Unable to run workflow with conda profile:

Do you have Conda installed and accessible on your PATH? I think the base env needs to be activated too.
I'm not sure what commit you're using. I don't think 6216c3244d corresponds to any commit I've made. Did you git clone the repo?

Work now at my end

The code is now able to support multiple lineages, please attached for the test result for lineages are B.1.618 and B1.617.2
shiptv_B1_617_2_B1_618.zip

@nhhaidee Are you talking about the changes in this PR? This PR is just for refactoring and restructuring. I didn't really touch issue #19 or #29

There are 2 concerns that I have:
* Downsampling multiple sequence alignment by  `bin/filter_msa.py` may drop or keep low number of strains for low abundance lineages (Ex: < 200 sequences like B.1.618). Below is the code that I did test, keep entire low abundance lineages and sampling large abundance lineages only, please let me know your comment on this

            df_total_len = len(df_less_n_gaps)
            df_stat = df_less_n_gaps.groupby('lineage').count()
            # Calculate abundance of lineages
            df_stat['abundances'] = df_stat['strain'] / df_total_len
            # For this case < 10% is considered as low abundance
            df_low_abundance_stat = df_stat[df_stat['abundances'] < 0.1]
            lineages_low_abundance = df_low_abundance_stat.index.tolist()
            df_low_abundance = df_less_n_gaps[df_less_n_gaps['lineage'].isin(lineages_low_abundance)]
            df_less_n_gaps.drop(df_less_n_gaps.index[df_less_n_gaps['lineage'].isin(lineages_low_abundance)],
                                inplace=True)
            df_sample = df_less_n_gaps.groupby('lineage').apply(
                lambda x: x.sample(int((len(x) / df_total_len) * threshold))).reset_index(drop=True)

            df_sample_strains = pd.concat([df_low_abundance, df_sample])

* Prune tree for shiptv: how do we set criteria for branch distance? ([Add neighbouring taxa using round-robin algorithm #29](https://github.com/nhhaidee/scovtree/issues/29)). You can look at the tree attached and pay attention to the subtree of lineage B.1.618 with input sequence is WIN-AH-201-OTH-0041, I set max_tax = 75, the subtree is still quite large, if set max_tax is small (Ex: 20) then the tree will be too small. It would be nice if we could cut down unnecessary taxa, keep the tree enough for reporting

How do you think if we have params are max_branch_distance and max_taxa to make tree enough for reporting?
max_branch_distance = 0.0005
def get_neighbors(tree: Tree, user_taxa: Set[str], clade_neighbors: Set[str], max_taxa: int) -> Set[str]:
    # TODO: implement adding neighboring taxa equally for all user taxa based on branch distance [peterk87 2021-06-22]
    for user_taxon in user_taxa:
        user_taxon_node = list(tree.find_elements(target=user_taxon))[0]
        clade: Clade
        for clade in tree.get_path(user_taxon_node)[::-1]:
            n_terminals = clade.count_terminals()
            if n_terminals <= max_taxa:
                clade_neighbors |= {nc.name for nc in clade.get_terminals() if tree.distance(user_taxon_node,nc) <= max_branch_distance}
            else:
                break
    return clade_neighbors

Let's move these to another PR.
This PR is mostly to refactor and restructure the workflow and code so that further changes can be implemented more easily.

OK @peterk87 For issue https://github.com/nhhaidee/scovtree/issues/29 and https://github.com/nhhaidee/scovtree/issues/19, will be discussed in another PR. I will wait for your final fixes, and run test at my end as well, if they are OK then we will merge and close this PR

@nhhaidee I added some code in aea78817293eb3489100b83fbf3205916760ee15 to bin/prune_tree.py to address #19 and #29. Trees produced should hopefully be a bit more balanced in terms of neighboring taxa for each user taxon.

@nhhaidee I added some code in aea7881 to bin/prune_tree.py to address #19 and #29. Trees produced should hopefully be a bit more balanced in terms of neighboring taxa for each user taxon.

I will test with my data, I have tested with below code and tree seems to be balanced
def get_neighbors(tree: Tree, user_taxa: Set[str], clade_neighbors: Set[str], max_taxa: int) -> Set[str]:
    # TODO: implement adding neighboring taxa equally for all user taxa based on branch distance [peterk87 2021-06-22]
    for user_taxon in user_taxa:
        user_taxon_node = list(tree.find_elements(target=user_taxon))[0]
        clade: Clade
        for clade in tree.get_path(user_taxon_node)[::-1]:
            n_terminals = clade.count_terminals()
            if n_terminals <= max_taxa * 5: # condition to make sure tree is not too small or too large which is run very slow
                clade_neighbors_user_taxon = {}
                for nc in clade.get_terminals():
                    clade_neighbors_user_taxon[nc.name] = tree.distance(nc.name,user_taxon_node)
                sorted_taxa_neighbors  = dict(sorted(clade_neighbors_user_taxon.items(), key=lambda item: item[1]))
                clade_neighbors |= {name for i, name in enumerate(sorted_taxa_neighbors.keys()) if i< max_taxa}
    return clade_neighbors

@nhhaidee
I have a few issues with the above code:

too much nesting making it hard to read and signaling that the implementation is inefficient
the same tree.distance calculation may be repeated multiple times. It's also a very slow calculation so repeating it is going to significantly increase the runtime esp with a large number of user input sequences.
5 is a "magic" number. Magic numbers should be avoided whenever possible. I don't see why it's necessary.
most importantly: the first user taxon will use up most or all the space in the leaf list. Please see my implementation where, for each user taxon, the nearest neighboring taxon is added until the desired number of taxa is reached https://github.com/nhhaidee/scovtree/blob/aea78817293eb3489100b83fbf3205916760ee15/bin/prune_tree.py#L80-L85

Please try your code and my code with -profile test_gisaid and the full GISAID data (also make sure you set --max_cpus {>2} --max_memory {>6 GB} to override test profile settings) to see the differences in the resulting trees.

OK @peterk87 I am just trying with my code and will test your code as well to see how the tree look like.
FYI... I am doing test for failure with my full data

@peterk87 The tree looks very nice with your code.
shiptv_full_data.zip
I will do testing with more test cases

Test cases:
Sample Lineages in GISAID  B.1.2 (> 100,000 sequences); B.1.617.2 ( > 37,000 sequences); B.1.618 ( > 180 sequences)
Input sequences: B.1.2 has 2 sequences, B.1.617.2 has 1 sequence, B.1.618 has 1 sequence
Test Case 1: 2 input consensus sequences belong to B.1.2 lineage (Passed)
Test Case 2: 1 input consensus sequence belong to B.1.617.2 lineage (No Run)
Test Case 3: 1 input consensus sequence belong to B.1.618 lineage (Passed)
Test Case 4: Mix consensus sequences (B.1.2 + B.1.617.2) (No Run)
Test Case 5: Mix consensus sequences (B.1.2 + B.1.618) (No Run)
Test Case 6: Mix consensus sequences (B.1.617.2 + B.1.618) (Failed)
Test Case 7: Mix consensus sequences (B.1.2 + B.1.617.2 + B.1.618) (Passed)
Test Case 8: test_gisaid, test_gisaid_custom (Passed)
Test Case 6 Failed with SHIPTV Process with error RecursionError: maximum recursion depth exceeded while calling a Python object. Please see log file
comman_shiptv.log
I will double check test case 6 again.

Updated tests:
Test cases:
Sample Lineages in GISAID B.1.2 (> 100,000 sequences); B.1.617.2 ( > 37,000 sequences); B.1.618 ( > 180 sequences)
Input sequences: B.1.2 has 2 sequences, B.1.617.2 has 1 sequence, B.1.618 has 1 sequence
Test Case 1: 2 input consensus sequences belong to B.1.2 lineage (Passed)
Test Case 2: 1 input consensus sequence belong to B.1.617.2 lineage (Passed)
Test Case 3: 1 input consensus sequence belong to B.1.618 lineage (Passed)
Test Case 4: Mix consensus sequences (B.1.2 + B.1.617.2) (Failed)
Test Case 5: Mix consensus sequences (B.1.2 + B.1.618) (Passed)
Test Case 6: Mix consensus sequences (B.1.617.2 + B.1.618) (Failed)
Test Case 7: Mix consensus sequences (B.1.2 + B.1.617.2 + B.1.618) (Passed)
Test Case 8: test_gisaid, test_gisaid_custom (Passed)
Failures related to lineage B.1.617.2. There is no problem with SHIPTV process with commit (https://github.com/peterk87/scovtree/commit/97ec512dc1fa59ced37065d1fc006c9bdfa90508). It seems that it failed after changing code to handle issue https://github.com/nhhaidee/scovtree/issues/29 and https://github.com/nhhaidee/scovtree/issues/19

Test Case 6 Failed with SHIPTV Process with error RecursionError: maximum recursion depth exceeded while calling a Python object. Please see log file
comman_shiptv.log
I will double check test case 6 again.

It seems to be an issue with BioPython's Phylo when writing a large tree. I've removed shiptv output of a Newick tree in e905072688eba8d489a52f262d54da4f9e600c25 and created an issue for shiptv.

TC4 and TC6 PASSED. So I think there is no problem with GISIAD Phylolegenetic workflow
--skip_nextclade param does not work with phylogenetic analysis workflows (without filtering GISAID)
skip_nextclade_does_not_work.log
Do you want me to merge and close this PR and open new PR for above issue?

It works now. I will do some testing and then I will merge and close this PR

All seems to be good now. I will merge/close this PR. The test is still failed intermittently because of IQTree, there is no problem when run the test locally.

Thank @peterk87 for great help on this.


Accounts: User deletion from filtered meeting list doesn't work properly

Describe the bug
When deleting a user from a filtered meeting list, a loading error occurs. Although the user has been removed from the meeting, he is still displayed. After reloading the page, the user is no longer displayed. I suspect an autoupdate problem.
This problem occurs currently only on the staging instance.
How to Reproduce
Steps to reproduce the behavior:
0. Required: A committee with two meetings (A and B). The meetings should have the superadmin as admin and two user as delegates.

open committees and open the filtered participants list of meeting A
in the filtered list: open three-dot-menu > multiselect > mark one user > three-dot-menu > set/remove meeting > remove user from meeting A
The user should now still be visible in the list. > Reload > User is gone.

Expected behavior
By removing a user from a filtered meeting list via multiselection, the action should be instantly without a reload visible.

In step 1. How do I open a filtered list of meetings in the committee-detail view?

You can access it by clicking on the small participant icon. -> see the image. I've marked it red.
FYI: This opens the meeting participant list in the Account menu. The filter can only be opened in that way. A filtered list of meetings can't be opened via Account menu directly.

meeting.user_ids field is not subscribed from autoupdate.


confdefs.h is never created by configure context

This issue was originally created at: 2009-07-16 05:10:31.
This issue was reported by: bms.

bms said at 2009-07-16 05:10:31

The CheckHeader() and other checks allow Autoconf to be replaced.
However, whilst the configuration context is documented to contain context.headerfilename, there doesn't appear to be any way of setting this variable when the configuration context is created, and it probably needs changes to SCons itself.
It is explicitly set to None when the context is created, and that's it.
Therefore, confdefs.h is never created, so SCons configuration tests never actually get to see HAVE_FOO_H defines.

gregnoel said at 2009-11-10 18:02:04

Bug party triage.

gregnoel said at 2010-07-21 17:00:31

Bug party triage.  Bump the priority of this issue.

garyo said at 2010-07-25 13:27:27

I've looked into this a little.  It's a bit convoluted.  At first I thought this bug was referring to config.h generation.  You can specify a config.h file name when creating the context (via the config_h arg); what happens is the SConf code builds a set of #define strings based on user's calls to sconf.Define() and those end up in config.h.  However config.h is never created during the configuration tests; there's a builder that is set up in Main.py (where it calls SCons.SConf.CreateConfigHBuilder(SCons.Defaults.DefaultEnvironment()), which builds config.h from the strings) that makes sure config.h is up-to-date before any source file needs it.  That part seems to work OK.
But this bug is really about confdefs.h, which is (according to the code) supposed to be created and updated during the tests.  Most of the logic there is in Conftest.py.  That code seems to me to be incomplete.  There's no way to specify it when creating a Configure context, and even if I do it manually it doesn't get into the individual CheckContext instance, which is where it's needed.  And if I do pass it all the way through, there are errors in the configure tests due to the file being missing.  I think basically it was never finished.  At least that's what it looks like to me from Conftest.py.
We should figure out what's needed to finish it so it works.  At least:

an arg to Configure() to specify that confdefs.h should be used (or default it on?)
pass that name to CheckContext when creating those
create the file if it doesn't exist, before running tests
make it actually work in Conftest.py (_Have, etc.)
write tests
update doc

Votes for this issue: 1.

Many years later, looking at it for about the third time... the @garyo comment seems on target. Autoconf has used confdefs.h as an internal (silent) accumulator of results, always included by checks, as you go through them, conclusions are added, so subsequent checks can use that info.  We don't auto-include it unless someone has initialized context.headerfilename to something, which, as noted above, can't be done (without fiddling SCons source itself).
We can't use config.h because it's not available during the configure run, it's generated later, for use by consumers of the Configure tests. If we need this kind of behavior, we have to keep track ourselves, and pass it in using the string argument usually named header to the various checkers.
Dunno if there's anything to do here - the feature is incomplete, but it's also not documented beyond the docstring at the head of Confdefs.py, so it's not like we've exposed it to users.  It doesn't break anything, so there's no real reason to remove the existing incomplete code. If somebody wants to volunteer to complete it, great.
I'd suggest close this (with a "reopen if someone cares" note) since it's not a documented feature.

Hmm.. Part of the reason that autoconf has this, I'd think, is so the various later checks could do different things with the results of successive preceding checks.
Since SCons has the power of python, those if/else type decisions can be made in SConscript(s) instead.
So there's always been a way to do this, it's just different than the way you'd do it with autoconf.
Unless I'm missing something here? @mwichmann

I don't think so... plus, it does still have the ability to accumulate from previous checks, I think. Perhaps needs some thought... imitating autoconf too closely wasn't ever a really superb match with scons logic.


HADOOP-18876. ABFS: Change default from disk to bytebuffer for fs.azure.data.blocks.buffer

Change default from disk to bytebuffer for fs.azure.data.blocks.buffer.
Derived from numerous workload runs, the data presented accentuates a noteworthy performance enhancement. The utilization of ByteBuffer for reading operations showcased a remarkable improvement of approximately 64.83% in contrast to conventional disk-based reading. Furthermore, the integration of ByteBuffer for write operations resulted in a significant efficiency gain of about 60.75%. These findings underscore the consistent and substantial advantages of embracing ByteBuffer as the default choice, particularly in light of the performance issues associated with disk operations.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
17m 51s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

-1 :x:
test4tests
0m  0s

The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
43m 18s

trunk passed

+1 :green_heart:
compile
0m 43s

trunk passed with JDK Ubuntu-<IP_ADDRESS>+1-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
compile
0m 39s

trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

+1 :green_heart:
checkstyle
0m 33s

trunk passed

+1 :green_heart:
mvnsite
0m 42s

trunk passed

+1 :green_heart:
javadoc
0m 40s

trunk passed with JDK Ubuntu-<IP_ADDRESS>+1-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
0m 38s

trunk passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

+1 :green_heart:
spotbugs
1m  8s

trunk passed

-1 :x:
shadedclient
32m 30s

branch has errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 30s

the patch passed

+1 :green_heart:
compile
0m 32s

the patch passed with JDK Ubuntu-<IP_ADDRESS>+1-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javac
0m 32s

the patch passed

+1 :green_heart:
compile
0m 29s

the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

+1 :green_heart:
javac
0m 29s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m 21s

the patch passed

+1 :green_heart:
mvnsite
0m 31s

the patch passed

+1 :green_heart:
javadoc
0m 28s

the patch passed with JDK Ubuntu-<IP_ADDRESS>+1-post-Ubuntu-0ubuntu120.04

+1 :green_heart:
javadoc
0m 26s

the patch passed with JDK Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

+1 :green_heart:
spotbugs
1m  4s

the patch passed

-1 :x:
shadedclient
32m 37s

patch has errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
2m 13s

hadoop-azure in the patch passed.

+1 :green_heart:
asflicense
0m 40s

The patch does not generate ASF License warnings.

143m 19s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6009/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/6009

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell detsecrets

uname
Linux 5c96c2643271 4.15.0-212-generic #223-Ubuntu SMP Tue May 23 13:09:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 5967c16a3e3035365aac9d5667c5bb736633c28a

Default Java
Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-<IP_ADDRESS>+1-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_382-8u382-ga-1~20.04.1-b05

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6009/1/testReport/

Max. process+thread count
412 (vs. ulimit of 5500)

modules
C: hadoop-tools/hadoop-azure U: hadoop-tools/hadoop-azure

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-6009/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

Yes, byte buffers are faster but large file uploads with more parallelism can cause OOM. That is the reason disk is default.
What kind of uploads you have performed? Could you please share file size, block size and number of parallel threads.
CC @steveloughran

I'm going to change this value but add in the release notes that this has happened.

The default value for fs.azure.data.blocks.buffer is changed from "disk" to "bytebuffer"
This will speed up writing to azure storage, at the risk of running out of memory
-especially if there are many threads writing to abfs at the same time and the
upload bandwidth is limited.
If jobs do run out of memory writing to abfs, change the option back to "disk"
Contributed by Anmol Asrani

@anmolanmol1234 merged to trunk. can you cherrypick to branch-3.3 and retest and i will merge there.


AttributeError: 'fiction.pyfiction.cartesian_obstruction_layout' object has no attribute 'is_dead'

Traceback (most recent call last):
File "/home/lvshuhang/nano_placement/NanoPlaceR/main.py", line 157, in
model.learn(
File "/home/lvshuhang/nano_placement/NanoPlaceR/ppo_masked/ppo_mask/ppo_mask.py", line 529, in learn
continue_training = self.collect_rollouts(
File "/home/lvshuhang/nano_placement/NanoPlaceR/ppo_masked/ppo_mask/ppo_mask.py", line 309, in collect_rollouts
new_obs, rewards, dones, infos = env.step(actions)
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 163, in step
return self.step_wait()
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/vec_env/dummy_vec_env.py", line 54, in step_wait
obs, self.buf_rews[env_idx], self.buf_dones[env_idx], self.buf_infos[env_idx] = self.envs[env_idx].step(
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/monitor.py", line 95, in step
observation, reward, done, info = self.env.step(action)
File "/home/lvshuhang/.local/lib/python3.9/site-packages/gym/wrappers/order_enforcing.py", line 11, in step
observation, reward, done, info = self.env.step(action)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/envs/nano_placement_env.py", line 240, in step
reward, done = self.calculate_reward(
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/envs/nano_placement_env.py", line 510, in calculate_reward
optimize_post_placement(self.layout)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/utils/post_placement_optimization.py", line 49, in optimize_post_placement
fix_dead_nodes(layout, gates)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/utils/post_placement_optimization.py", line 151, in fix_dead_nodes
if lyt.is_dead(lyt.get_node(gate)):
AttributeError: 'fiction.pyfiction.cartesian_obstruction_layout' object has no attribute 'is_dead'

lvshuhang@s04:~/nano_placement/NanoPlaceR
$ python main.py
New best placement: 1/150 (1.90s)
New best placement: 2/150 (1.91s)
New best placement: 3/150 (1.91s)
New best placement: 4/150 (1.91s)
New best placement: 5/150 (1.92s)
New best placement: 6/150 (1.92s)
New best placement: 7/150 (1.92s)
New best placement: 8/150 (1.93s)
New best placement: 9/150 (1.93s)
New best placement: 10/150 (1.93s)
New best placement: 11/150 (1.94s)
New best placement: 12/150 (1.94s)
New best placement: 13/150 (1.95s)
New best placement: 14/150 (1.95s)
New best placement: 15/150 (1.95s)
New best placement: 16/150 (1.96s)
New best placement: 17/150 (1.96s)
New best placement: 18/150 (1.96s)
New best placement: 19/150 (1.97s)
New best placement: 20/150 (1.97s)
New best placement: 21/150 (1.98s)
New best placement: 22/150 (1.98s)
New best placement: 23/150 (6.34s)
New best placement: 24/150 (6.34s)
New best placement: 25/150 (6.35s)
New best placement: 26/150 (15.13s)
New best placement: 27/150 (15.13s)
New best placement: 28/150 (15.14s)
New best placement: 29/150 (21.39s)
New best placement: 30/150 (21.40s)
New best placement: 31/150 (25.11s)
New best placement: 32/150 (33.27s)
New best placement: 33/150 (45.46s)
New best placement: 34/150 (45.47s)
New best placement: 35/150 (52.14s)
New best placement: 36/150 (52.14s)
New best placement: 37/150 (52.15s)
New best placement: 38/150 (52.15s)
New best placement: 39/150 (75.91s)
New best placement: 40/150 (75.92s)
New best placement: 41/150 (75.92s)
New best placement: 42/150 (80.72s)
New best placement: 43/150 (96.07s)
New best placement: 44/150 (96.08s)
New best placement: 45/150 (96.08s)
New best placement: 46/150 (96.09s)
New best placement: 47/150 (96.09s)
New best placement: 48/150 (96.09s)
New best placement: 49/150 (96.10s)
New best placement: 50/150 (96.10s)
New best placement: 51/150 (96.11s)
New best placement: 52/150 (96.12s)
New best placement: 53/150 (96.12s)
New best placement: 54/150 (99.01s)
New best placement: 55/150 (99.02s)
New best placement: 56/150 (99.02s)
New best placement: 57/150 (99.03s)
New best placement: 58/150 (99.03s)
New best placement: 59/150 (111.34s)
New best placement: 60/150 (111.35s)
New best placement: 61/150 (111.35s)
New best placement: 62/150 (111.36s)
New best placement: 63/150 (111.37s)
New best placement: 64/150 (111.38s)
New best placement: 65/150 (111.38s)
New best placement: 66/150 (198.01s)
New best placement: 67/150 (198.02s)
New best placement: 68/150 (198.02s)
New best placement: 69/150 (263.52s)
New best placement: 70/150 (263.52s)
New best placement: 71/150 (263.53s)
New best placement: 72/150 (419.67s)
New best placement: 73/150 (419.68s)
New best placement: 74/150 (419.68s)
New best placement: 75/150 (419.68s)
New best placement: 76/150 (419.69s)
New best placement: 77/150 (419.69s)
New best placement: 78/150 (419.69s)
New best placement: 79/150 (419.89s)
New best placement: 80/150 (419.89s)
New best placement: 81/150 (419.90s)
New best placement: 82/150 (744.21s)
New best placement: 83/150 (744.22s)
New best placement: 84/150 (744.22s)
New best placement: 85/150 (748.54s)
New best placement: 86/150 (748.54s)
New best placement: 87/150 (748.55s)
New best placement: 88/150 (748.55s)
New best placement: 89/150 (748.56s)
New best placement: 90/150 (778.96s)
New best placement: 91/150 (778.97s)
New best placement: 92/150 (781.61s)
New best placement: 93/150 (783.02s)
New best placement: 94/150 (784.60s)
New best placement: 95/150 (793.67s)
New best placement: 96/150 (793.67s)
New best placement: 97/150 (793.67s)
New best placement: 98/150 (798.83s)
New best placement: 99/150 (798.83s)
New best placement: 100/150 (798.84s)
New best placement: 101/150 (798.84s)
New best placement: 102/150 (804.97s)
New best placement: 103/150 (804.97s)
New best placement: 104/150 (804.98s)
New best placement: 105/150 (804.98s)
New best placement: 106/150 (804.99s)
New best placement: 107/150 (804.99s)
New best placement: 108/150 (805.00s)
New best placement: 109/150 (805.00s)
New best placement: 110/150 (805.01s)
New best placement: 111/150 (805.01s)
New best placement: 112/150 (805.03s)
New best placement: 113/150 (805.03s)
New best placement: 114/150 (805.04s)
New best placement: 115/150 (805.05s)
New best placement: 116/150 (805.05s)
New best placement: 117/150 (805.07s)
New best placement: 118/150 (805.08s)
New best placement: 119/150 (805.08s)
New best placement: 120/150 (805.08s)
New best placement: 121/150 (805.09s)
New best placement: 122/150 (805.10s)
New best placement: 123/150 (821.92s)
New best placement: 124/150 (821.93s)
New best placement: 125/150 (822.19s)
New best placement: 126/150 (891.73s)
New best placement: 127/150 (891.74s)
New best placement: 128/150 (891.75s)
New best placement: 129/150 (891.76s)
New best placement: 130/150 (891.77s)
New best placement: 131/150 (891.77s)
New best placement: 132/150 (891.78s)
New best placement: 133/150 (891.79s)
New best placement: 134/150 (891.80s)
New best placement: 135/150 (891.82s)
New best placement: 136/150 (891.83s)
New best placement: 137/150 (891.83s)
New best placement: 138/150 (891.84s)
New best placement: 139/150 (891.85s)
New best placement: 140/150 (951.61s)
New best placement: 141/150 (1537.50s)
New best placement: 142/150 (1537.51s)
New best placement: 143/150 (1537.52s)
New best placement: 144/150 (1537.52s)
New best placement: 145/150 (1537.53s)
New best placement: 146/150 (1537.54s)
New best placement: 147/150 (1537.55s)
New best placement: 148/150 (1559.97s)
New best placement: 149/150 (1559.98s)
New best placement: 150/150 (1920.84s)
Found solution after 1920.84s
Step: 1, Moved Gates: 110
Step: 2, Moved Gates: 49
Step: 3, Moved Gates: 3
Step: 4, Moved Gates: 5
Step: 5, Moved Gates: 3
Step: 6, Moved Gates: 0
Column 37 can be deleted
Traceback (most recent call last):
File "/home/lvshuhang/nano_placement/NanoPlaceR/main.py", line 157, in
model.learn(
File "/home/lvshuhang/nano_placement/NanoPlaceR/ppo_masked/ppo_mask/ppo_mask.py", line 529, in learn
continue_training = self.collect_rollouts(
File "/home/lvshuhang/nano_placement/NanoPlaceR/ppo_masked/ppo_mask/ppo_mask.py", line 309, in collect_rollouts
new_obs, rewards, dones, infos = env.step(actions)
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/vec_env/base_vec_env.py", line 163, in step
return self.step_wait()
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/vec_env/dummy_vec_env.py", line 54, in step_wait
obs, self.buf_rews[env_idx], self.buf_dones[env_idx], self.buf_infos[env_idx] = self.envs[env_idx].step(
File "/home/lvshuhang/.local/lib/python3.9/site-packages/stable_baselines3/common/monitor.py", line 95, in step
observation, reward, done, info = self.env.step(action)
File "/home/lvshuhang/.local/lib/python3.9/site-packages/gym/wrappers/order_enforcing.py", line 11, in step
observation, reward, done, info = self.env.step(action)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/envs/nano_placement_env.py", line 240, in step
reward, done = self.calculate_reward(
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/envs/nano_placement_env.py", line 510, in calculate_reward
optimize_post_placement(self.layout)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/utils/post_placement_optimization.py", line 49, in optimize_post_placement
fix_dead_nodes(layout, gates)
File "/home/lvshuhang/nano_placement/NanoPlaceR/placement_envs/utils/post_placement_optimization.py", line 151, in fix_dead_nodes
if lyt.is_dead(lyt.get_node(gate)):
AttributeError: 'fiction.pyfiction.cartesian_obstruction_layout' object has no attribute 'is_dead'

Thanks for raising this issue @xiaohangguo
The error is due to a new post-layout optimization algorithm that depends on new functionality in pyfiction.
Updating and reinstalling fiction should resolve the AttributeError.
(venv) $ cd fiction
(venv) $ git pull
(venv) $ pip install .

Thanks for raising this issue @xiaohangguo
The error is due to a new post-layout optimization algorithm that depends on new functionality in pyfiction. Updating and reinstalling fiction should resolve the AttributeError.
(venv) $ cd fiction (venv) $ git pull (venv) $ pip install .

ok,solved it


Reuse gangway client secret if present

Why is this PR needed?
When either dex or gangway addon upgrade, it regenerates the client secret for gangway client (stored in configmap oidc-gangway-config) and dex server s(stored in configmap oidc-dex-config).
However, if only one of the addon needs to be upgraded, this makes the client secret mismatched.
Fixes https://github.com/SUSE/avant-garde/issues/1360
Reminder: Add the "fixes bsc#XXXX" to the title of the commit so that it will
appear in the changelog.
What does this PR do?
Reuse existed gangway client secret if present.
Anything else a reviewer needs to know?
N/A
Info for QA
This is info for QA so that they can validate this. This is mandatory if this PR fixes a bug.
If this is a new feature, a good description in "What does this PR do" may be enough.
Related info
Info that can be relevant for QA:

link to other PRs that should be merged together
link to packages that should be released together
upstream issues

Status BEFORE applying the patch

Bumps either dex or gangway manifest version and upgrade the addon
Check oidc-dex-config and oidc-gangway-config client secret, client secret mismatched

kubectl get cm oidc-dex-config -o yaml
kubectl get cm oidc-gangway-config -o yaml

Status AFTER applying the patch

Bumps either dex or gangway manifest version and upgrade the addon
Check oidc-dex-config and oidc-gangway-config client secret, client secret matched

kubectl get cm oidc-dex-config -o yaml
kubectl get cm oidc-gangway-config -o yaml

Docs
N/A
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

Signed-off-by: JenTing Hsiao<EMAIL_ADDRESS>

@kravciak @thehejik please help check this fix to see if the issue (https://github.com/SUSE/avant-garde/issues/1360) gets fixed. Thanks.

I had a look, it seems okay at first sight, but someone else should approve.


Fix Allocation::append() pageRun merge issue which might cause memory free leak

Current Allocation::append() has an optimization to extend the last
page run if the new append buffer is contiguous to the last page run's
buffer so that we can merge the two buffers into one larger buffer.
However, this might cause memory free leaking if the mapped memory
spaces of two size classes are contiguous. The allocation path might
merge the buffers from two different size classes into one page run.
On the free path, we might skip freeing the second part of the merged
page run if it belongs to a smaller size class. This might cause some
other error symptom if we merge a large size class buffer into a page
run from a smaller size class.
For example, here is mapped space distribution of size classes collected
from a failed linux-build-release run from circle ci:
I0206 21:53:17.955401 74442 MmapAllocator.cpp:492] unitSize_ 1 @<PHONE_NUMBER>14656 byte size 268435456
I0206 21:53:17.955425 74442 MmapAllocator.cpp:492] unitSize_ 2 @<PHONE_NUMBER>79200 byte size 268435456
I0206 21:53:17.955430 74442 MmapAllocator.cpp:492] unitSize_ 4 @<PHONE_NUMBER>43744 byte size 268435456
I0206 21:53:17.955435 74442 MmapAllocator.cpp:492] unitSize_ 8 @<PHONE_NUMBER>08288 byte size 268435456
I0206 21:53:17.955439 74442 MmapAllocator.cpp:492] unitSize_ 16 @<PHONE_NUMBER>72832 byte size 268435456
I0206 21:53:17.955443 74442 MmapAllocator.cpp:492] unitSize_ 32 @<PHONE_NUMBER>37376 byte size 268435456
I0206 21:53:17.955447 74442 MmapAllocator.cpp:492] unitSize_ 64 @<PHONE_NUMBER>01920 byte size 268435456
I0206 21:53:17.955451 74442 MmapAllocator.cpp:492] unitSize_ 128 @<PHONE_NUMBER>66464 byte size 268435456
I0206 21:53:17.955454 74442 MmapAllocator.cpp:492] unitSize_ 256 @<PHONE_NUMBER>31008 byte size 268435456

We can see that the end of size class 256 (each class unit has 256 4KB
pages) is contiguous to the start of size class 128. For an allocation of 384
pages, MmapAllocator::SizeClass::allocateFromMappedFree can choose to
allocate the last unit from size class of 256 and the first one from size class of
128 to form 384 pages allocation. Allocation::append can merge the two
into one page run (merge the unit of size class 128 into page run created by
size class 256) as the two buffers are contiguous. On the free path,
MmapAllocator::SizeClass::free will only free the first 256 pages from the merged
page run and cause 128 pages allocation leaking.
The fix is to remove buggy optimization in Allocation::append so each append
will create a new page run.
Has verified the fix on linux-release-build with 1000 times run. Also note that
Allocation::append is mainly used by allocator internally with one call from
different size classes so it won't cause any performance regression.
We can consider to optimize the size class free path for non-contiguous allocation
since each PageRun only contains pages from one size class and we could store
the size class id in the PageRun for that purpose.

“We can consider to optimize the size class free path for non-contiguous allocation
since each PageRun only contains pages from one size class and we could store
the size class id in the PageRun for that purpose.”


Fix preact Provider for Preact X

The Preact X alpha made one breaking change that broke the Provider component and respective connect HoC:

As a user the most noticable change will be that props.children is not guaranteed to be an array anymore.

To fix this I shamelessly took the same approach as unistore and, if the 0 index in the children prop is missing just return the entire children prop instead.

Thanks for this @d3x7r0. Before I can accept, could you please:

Bump the version in package.json to 5.0.2
Add this change to the changelog file?

Done. I'm not the best at writting changelog entries do so do let me know if you think I should improve it somehow :)


Added new widget stacks - before_breadcrumbs and after_breadcrumbs

These new stacks allows developers to push widgets

before the breadcrumbs and the header (aka page title, for example in CRUD pages);
between the breadcrumbs and the header (aka page title);

The widgets will show even if breadcrumbs are disabled.

A new inspection was created.

The inspection completed: No new issues


linker command failed with exit code 1 --- directory not found for option '.....[configuration_name]_iphonesimulator/xxx'

Steps to reproduce the behavior
First thank you for your work on this nice library.
My package.json has added the following:
  ...
  "scripts": {
    ......
    "postinstall": "react-native-schemes-manager all"
  },
  "xcodeSchemes": {
    "Debug": [
      "StagingDebug"
    ],
    "Release": [
      "StagingRelease"
    ],
    "projectDirectory": "ios",
    "settings": {}
  },
  ...

After editing the package.json I duplicated the configuration Debug and Release on my Xcode workspace. I also duplicated the scheme, pointed it to StagingDebug and made sure it is with build options Parallelize Build unchecked, and React is on the top of the build target list. And I run npm run postinstall.
Expected behavior
It should work. I tried to go though the same steps on a clean project "AwesomeProject" created by react-native init AwesomeProject and everything works like a charm.
I think it may because of react-native-schemes-manager or react-native-config that I used in this project.
Actual behavior
Only able to build the old scheme with old configration. Fail to build the scheme with new configuration. The error is as screenshot below. And some libraries' folders are not generated in StagingDebug-iphonesimulator

Oh I solved the problem by running pod install after comment out pod 'react-native-config', :path => '../node_modules/react-native-config'
If I run pod install without comment the line, I got 'GeneratedDotEnv.m' file not found. Hope this can help someone who have the same problem.


boohu: 0.12.0 -> 0.13.0

Motivation for this change
Boohu version update :alien:
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md

@GrahamcOfBorg build boohu

@jonringer Thanks! :alien:


Error callbacks

Hi!
I have a question about the use of pysnmp and I don´t know if a want to do is posible.
I want to throw raise of a known error code callback.
I´m using pysnmp like runway between a own protocol where I return a error code, if this matter, and this error codes are the same that in pysnmp:
SNMP_ERRORSTATUS_NOERROR0 |
SNMP_ERRORSTATUS_TOOBIG1 |
SNMP_ERRORSTATUS_NOSUCHNAME2 |
SNMP_ERRORSTATUS_BADVALUE3 |
SNMP_ERRORSTATUS_READONLY4 |
SNMP_ERRORSTATUS_GENERR5
...
I´m triying to raise this errors with the codes of snmp in a handler where y throw GET and SET request.
but this always response General error, with the code 5 sawn in wireshark.
I thought that the error is in pysnmp/hlapi/asyncore/sync/cmdgen.py, but I don´t know how to use...
I would be very grateful if someone can help me

Looking for, I saw in file "pysnmp/entity/rfc3413/cmdrsp.py" the next code:
class GetCommandResponder(CommandResponderBase):
pduTypes = (rfc1905.GetRequestPDU.tagSet,)
print ("[PX]:########### Pasa libreria por aqui 5")
# rfc1905: 4.2.1
def handleMgmtOperation(self, snmpEngine, stateReference,
                        contextName, PDU, acInfo):
    print ("[PX]:########### Pasa libreria por aqui 4")
    (acFun, acCtx) = acInfo
    # rfc1905: <IP_ADDRESS>
    mgmtFun = self.snmpContext.getMibInstrum(contextName).readVars
    print("cosas que envia"+ str(mgmtFun) )
    self.sendVarBinds(snmpEngine, stateReference, 0, 0,
                      mgmtFun(v2c.apiPDU.getVarBinds(PDU), (acFun, acCtx)))
    self.releaseStateInformation(stateReference)

The two arguments 0, makes reference to errorStatus and errorIndex. My problem is, thath i Want to put in the function "sendVarBind" a kown errorStatus, but the previos class "GetCommandResponder" don´t allow to me do it.
How I can put in this errorStatus a value, without change the library...
Thanks for answers.

PySNMP allows you to use its predefined type errorStatus to translate numbers to strings if that's what you want.
https://github.com/lextudio/pysnmp/blob/v7.0.2/pysnmp/proto/rfc1905.py#L101
from pysnmp.proto.rfc1905 import errorStatus
name = errorStatus.namedValues.get(1)
print(name)  # Output: tooBig
With that you can throw an error like raise Exception(name).


Cannot download competition data but can list it

Hi,
When I tried to download the dataset of a competition, it shows an error of {"code":404,"message":"NotFound"}. But I can use the command to list the dataset.
Thanks for any help!
`kaggle competitions files -c two-sigma-financial-modeling
name           size  creationDate

train.h5.zip  553MB  None
competitions download -c two-sigma-financial-modeling
Traceback (most recent call last):
File "c:\users\flios\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
"main", mod_spec)
File "c:\users\flios\anaconda3\lib\runpy.py", line 85, in run_code
exec(code, run_globals)
File "C:\Users\Flios\Anaconda3\Scripts\kaggle.exe_main.py", line 9, in
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\cli.py", line 18, in main
out = args.func(**command_args)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api\kaggle_api_extended.py", line 246, in competitionDownloadCli
self.competitionDownloadFiles(competition, path, force, quiet)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api\kaggle_api_extended.py", line 233, in competitionDownloadFiles
self.competitionDownloadFile(competition, file.ref, path, force, quiet)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api\kaggle_api_extended.py", line 222, in competitionDownloadFile
response = self.process_response(self.competitions_data_download_file_with_http_info(id = competition, file_name = file, _preload_content = False))
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api\kaggle_api.py", line 131, in competitions_data_download_file_with_http_info
collection_formats=collection_formats)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api_client.py", line 318, in call_api
_preload_content, _request_timeout)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api_client.py", line 149, in __call_api
_request_timeout=_request_timeout)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\api_client.py", line 339, in request
headers=headers)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\rest.py", line 235, in GET
query_params=query_params)
File "c:\users\flios\anaconda3\lib\site-packages\kaggle\rest.py", line 225, in request
raise ApiException(http_resp=r)
kaggle.rest.ApiException: (404)
Reason: Not Found
HTTP response headers: HTTPHeaderDict({'Cache-Control': 'private', 'Content-Length': '33', 'Content-Type': 'application/json; charset=utf-8', 'Set-Cookie': 'TempData=.kXVFW1OTsyP0rMDHYMCVmOdw81b2Zu4hSp3Jd8BxnHAY7B/wHjgGkA6y92Y8fdXVL4qPTIJH5qft4eTEOx7+wvUo0bZUMYkCrF78EksmbQM0K73j2wRXx/A87lU5S8Wq9/sxwMhvjI0Hfkmmyaed54xtq5kCUBeppKVie5AZTAUbGayNZjnS5eWmIvTwIsrsXeB9Wu+2ScS5+S1PNlsGZ9uMzCs=; path=/; secure; HttpOnly, ARRAffinity=09c2beb4c9502b4b21d5170f783270ae843e6395502382744e0942964888b1c0;Path=/;HttpOnly;Domain=www.kaggle.com', 'X-Kaggle-MillisecondsElapsed': '95', 'X-Kaggle-RequestId': '8f9df8b37ecc25809633f9f6361bb9ba', 'X-Kaggle-ApiVersion': '1.1.0', 'X-Frame-Options': 'SAMEORIGIN', 'Date': 'Wed, 21 Mar 2018 17:18:40 GMT'})
HTTP response body: b'{"code":404,"message":"NotFound"}'`

I also meet this issue ,I don't know why

me too.

This is likely because the competition is over.  Will look into making the error message more useful + making it clear from the list that the competition is over.

I got the same trouble, but i'm sure it's not over.

@zhoumumu, which competition, what error, and what was the actual command you used?

@rysteboe , 404 when download.
Sorry, I found it's an in-class competition which requires invitation for competitors. So I have no problem now, thanks!

Hi, so is this data no longer available?  The competition is over but I would still like to see the data.

@tingli81 which competition?  Some competitions do not keep their data available after they close, or take it down some period of time after the competition closes.

Cleaned up the error messages here to clarify what's going on.  Please let me know if there are any additional problems.

Kaggle competitions have significant differences from "typical" data science, yet they give important experience if you approach them.


fix: more debug about plugin file

:tada: This PR is included in version 1.0.0-alpha.27 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Interest in type-checked grape?

Heyo,
So I've been using grape extensively for the past few years, and with RBS and steep/sorbet progressing, I wondered what the interest would be in adding type-checking to grape.
In a sense, the params parsing brings maybe 30% of the benefits of types to a grape API, and provides a solid target for generating OpenAPI/Swagger. My thought would be to implement something like the following:

either move params definition into RBS, or infer types from the existing DSL, preferably the latter, with the result that you get type checking/hinting/completion in your api endpoint method, e.g. params.username -> String
do essentially the same thing for endpoint method returns, although those are currently just "documented" for OpenAPI purposes, but basically you should get an error if you return my_obj.to_json instead of my_obj when the endpoint is supposed to return an instance of my_obj.class
Bring grape-entity along for the ride - add typing to its DSL
once the above are complete, it should be possible to generate OpenAPI specs from the types themselves instead of from developer-provided doc strings/annotations, and use static analysis to ensure a given API conforms to the spec

This is obviously a fairly complex task, so my first question is, is this something people would find useful? It would eliminate a whole category of tests and bugs involved in ensuring backend talks to frontend properly, but it would also add a non-trivial amount of friction.
My second question is, where does this belong? I think monkey-patching/extending grape, grape-entity, and grape-swagger in a new gem should be possible, but I could also see an argument for forking grape and adding this functionality directly, or for trying to make it a first-class, opt-in feature of mainline grape.
Thanks for your thoughts!

I think it's a great idea, and I think you're on the right track for params. What do you think about extracting validation into a separate library (everything in https://github.com/ruby-grape/grape/tree/master/lib/grape/validations) in a way that can be swapped? You could then make a grape-params library that implements our current state, and an RBS-enabled library called grape-params-rbs. I think grape-entity and friends can follow the same model, except that I would just fork those into RBS-enabled implementations.
All that said, I would definitely POC the work by brute-forcing it in a fork first ;)

I would love to see this happen

Only tangentially related to the ask in the first post, but if anyone is interested in using Grape in a Sorbet-typechecked project, you'll probably find the grape_sorbet gem helpful.
For now the gem is mostly focused on making it possible to use Grape without having to opt out of typechecking entirely with # typed: false or littering the code with T.unsafe.
In theory, it should be possible to achieve something close to what the first post suggests by defining Sorbet typed structs to hold parameters and augmenting Grape's params DSL to accept a T::Struct, but I haven't explored this at all and I'm not sure how you'd handle custom validators with this approach.

Whoa! Thank you for your contributions to the space @olivier-thatch. I'll have to check this out.


i can't run runbot.bat

Whenever I try to run runbot.bat as administrator, it just opens for less than a sec and closes

Hi,
Could you specify error message or screenshots?

Did you run update dependencies for windows .bat file first?  Check the wiki or readme for installation steps.


⚠ Minecraft has degraded performance

In 0380564, Minecraft (https://www.minecraft.net) experienced degraded performance:

HTTP code: 200
Response time: 1258 ms

Resolved: Minecraft performance has improved in 4fdda8e.


Finalize Light Mode / Dark Mode (with new primitives)

Details

This PR updates both light and dark product color themes to match figma. We update the highlightBG color, add some remaining themed illustrations, and update the hover color.
Fixed Issues

$ https://github.com/Expensify/App/issues/32131
$ https://github.com/Expensify/App/issues/32188
$ https://github.com/Expensify/App/issues/28817
Tests

[ ] Verify that no errors appear in the JS console

Go to Settings -> Workspaces -> Click a workspace without a bank account -> Bank account -> Add Manually

[ ] Verify that the correct check preview image is shown in:
[ ] Light Mode + English Language
[ ] Dark Mode + English Language
[ ] Light Mode + Spanish Language
[ ] Dark Mode + Spanish Language

Go to Profile -> Click on Profile Avatar

[ ] Verify that the border around the camera icon matches the background in both light and dark mode

Open a chat -> type @ and verify that the highlight color matches these mocks:

Visually QA Hover/Active/Regular LHN colors match this mock:

DESIGN: HOW TO HELP QA:

Open the most recent Adhoc Build on your favorite platform and log into your expensifail.com
To change themes, go to /preferences/themes and select Light and Dark. See below:

https://github.com/Expensify/App/assets/38015950/64c86ff8-b2fb-41bd-a8ac-a845cfdb7452

Take a screenshot of any incorrect colors and leave a comment with a screenshot and what changes need to be made

IN DEV: HOW TO HELP QA:

Use these statements in the console:

To switch themes in DEV:
Onyx.merge("preferredTheme", 'dark');

Onyx.merge("preferredTheme", 'light');

To switch languages in DEV:
Onyx.merge("preferredLocale", 'en');

Onyx.merge("preferredLocale", 'es');

Offline tests

QA Steps

Go to Settings -> Workspaces -> Click a workspace without a bank account -> Bank account -> Add Manually

[ ] Verify that the correct check preview image is shown in:
[ ] Dark Mode + English Language
[ ] Dark Mode + Spanish Language

Go to Profile -> Click on Profile Avatar

[ ] Verify that the border around the camera icon matches the background in dark mode

Open a chat -> type @ and verify that the highlight color matches these mocks:

PR Author Checklist

[X] I linked the correct issue in the ### Fixed Issues section above
[X] I wrote clear testing steps that cover the changes made in this PR

[X] I added steps for local testing in the Tests section
[X] I added steps for the expected offline behavior in the Offline steps section
[X] I added steps for Staging and/or Production testing in the QA steps section
[X] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[X] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[X] I included screenshots or videos for tests on all platforms
[X] I ran the tests on all platforms & verified they passed on:

[X] Android: Native
[X] Android: mWeb Chrome
[X] iOS: Native
[X] iOS: mWeb Safari
[X] MacOS: Chrome / Safari
[X] MacOS: Desktop

[X] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[X] I followed proper code patterns (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[X] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I followed the guidelines as stated in the Review Guidelines
[X] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] I verified that if a function's arguments changed that all usages have also been updated correctly
[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

cc @dannymcclain @dubielzyk-expensify @shawnborton @chrispader for QA

:test_tube::test_tube: Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! :test_tube::test_tube:

Android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/32512/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/32512/index.html

Desktop :computer:
Web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/32512/NewExpensify.dmg
https://32512.pr-testing.expensify.com

cc @dannymcclain @dubielzyk-expensify @shawnborton @chrispader for some reason the latest ADHOC didn't include the last commit- looking into it 🙃

Hahaha I kept looking and looking thinking that I had gone crazy! No worries.

:test_tube::test_tube: Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! :test_tube::test_tube:

Android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/32512/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/32512/index.html

Desktop :computer:
Web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/32512/NewExpensify.dmg
https://32512.pr-testing.expensify.com

Asked in engineering-chat: https://expensify.slack.com/archives/C03TQ48KC/p1701812296195999

:test_tube::test_tube: Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! :test_tube::test_tube:

Android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/32512/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/32512/index.html

Desktop :computer:
Web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/32512/NewExpensify.dmg
https://32512.pr-testing.expensify.com

:test_tube::test_tube: Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! :test_tube::test_tube:

Android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/32512/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/32512/index.html

Desktop :computer:
Web :spider_web:

https://ad-hoc-expensify-cash.s3.amazonaws.com/desktop/32512/NewExpensify.dmg
https://32512.pr-testing.expensify.com

@dannymcclain @shawnborton @dubielzyk-expensify
Do a hard refresh and you should be able to load the theme page- https://32512.pr-testing.expensify.com/settings/preferences/theme

A preview of your ExpensifyHelp changes have been deployed to https://e65ef1dc.helpdot.pages.dev ⚡

:test_tube::test_tube: Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! :test_tube::test_tube:

Android :robot:
iOS :apple:

https://ad-hoc-expensify-cash.s3.amazonaws.com/android/32512/index.html
https://ad-hoc-expensify-cash.s3.amazonaws.com/ios/32512/index.html

Desktop :computer:
Web :spider_web:

❌ FAILED ❌
https://32512.pr-testing.expensify.com

The QR code can't be generated, because the Desktop build failed

I'm still seeing the issue where the light mode LHN colors don't have the correct selected state and hover state, notice how they look the same:

But on dark mode, they are different:

@sobitneupane, just a note: desktop is broken on main, but the last ADHOC build includes all changes except for the LHN hover colors. I decided not to rebuild as I wanted to remove the temporary settings from this PR so we can merge. (Which allows you to switch themes in ADHOC)

Ready for final review @sobitneupane

I lied, now it's ready for final review @sobitneupane 🙏
If you could please prioritize this, we are aiming to launch this feature in the next week :)

@sobitneupane I merged main for the desktop build fix :)

@sobitneupane since we're handling those in a follow up, is there anything else blocking from approval?

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/Gonals in version: 1.4.10-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
cancelled 🔪

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/Gonals in version: 1.4.10-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.10-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
cancelled 🔪

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.10-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Poor example for many reasons

I'd have expected Microsoft to be more useful than this, but then they seem to have abandoned C++ long ago in favour of their darling C# and the CLR version that isn't actually C++.
Aside from the stupid name of CMyException rather than StructuredException (no need for a C prefix, this isn't an MFC class and using C as a prefix to mean "class" is so 1990s and poor even then):

It doesn't derive from std::exception. All exceptions should derive from std::exception.
Exception should give more detail not just a number.
Why have you ignored PEXCEPTION_POINTERS. If that is supposed to get you more information about what went wrong, put it into the exception. (Clearly this goes together with point 2).
Your exception class is not const-correct.

I'll forgive your use of printf  but this is supposed to be C++.

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

ID: a032d653-53e0-1d86-2174-1ae3a9ec8060
Version Independent ID: 25ce27d4-cca5-c4d3-de2d-b06042e24d11
Content: _set_se_translator
Content Source: docs/c-runtime-library/reference/set-se-translator.md
Product: visual-cpp
GitHub Login: @corob-msft
Microsoft Alias: corob

Looks like this issue was resolved by @MSDN-WhiteKnight -- thanks!


Code listing style fixes, remove extra line management

closes #662
Summary
This PR refactors the css styling of the CodeListing in order to properly render new lines coming from code.
Dependencies

This builds upon #663
probably fixes #502 properly

Testing
This PR should be tested with as many examples as possible, across Tutorials and Doc pages.
We should test with scrollable content, multi-line content, and any combination of them.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.

[ ] ~Added tests~ - css mostly
[ ] Ran npm test, and it succeeded
[ ] Updated documentation if necessary

@Kyle-Ye give this a try and let me know :)

@Kyle-Ye give this a try and let me know :)

Tried it. It seems to fix all the bug I know. Thanks

[x] Missing new line in multi string swift code
[x] Extra new line in tutorial
[x] Proper new line copy behavior in tutorial.

@swift-ci test

@swift-ci test


See idea about avoiding dangling single lines

See link in #807

Think Chris fixed it with the extra package. Let's close and notice next year if still a problem...


Bump controller-runtime to latest and unpin dependencies in go.mod

Blocking on cloudfoundry-incubator/eirini-release#217.


rewrite tait's -> async fn | mem::replace-> take()

implements #49

It's clear to me that TAIT will be stabilized before AFIT, and this seems even more apparent given that they are splitting the feature and pushing the stabilization of impl Trait in assoc types (our usecase). With embedded-io moving to AFIT quite early, it puts us in a bit of a tricky spot.
I guess to support both we need to make embedded-io 0.3 and 0.4 optional, which either can be opted in to. The problem is that using embedded-io we're locked into their choices, maybe we should petition in upstream embedded-io to switch back to TAIT (downside: more ecosystem churn).
Not sure what the best solution is here.

next embedded-hal wg meeting is not announced yet? adamgreig mention he is away till 2nd May

I've implemented a different approach for now, which is heavier weight on embedded-svc but minimizes any other changes elsewhere - basically, rather than pub use-ing the async traits of embedded-io from within embedded-svc::io, I've moved them into embedded-svc::io, yet I've raised the dependency on embedded-io 0.4, as the rest of that crate can be re-used unchanged (the blocking and the common parts). There's also EmbIo adapter if somebody really really needs to pass an embedded-io-4 async trait impl where we have embedded_svc::io::asynch impl or the other way around. Not that I expect such a use-case to happen, but you never know.

We can keep this PR open and push it (potentially - with changes) once there is extra clarity how the "real" async traits are going to look like (not the TAIT + GAT manual desugaring we are continuing to use for now). I'm however not holding my breath that async traits are going to land any time soon.

meta info: https://blog.rust-lang.org/inside-rust/2023/05/03/stabilizing-async-fn-in-trait.html

Unfortunately TAIT was not stabilized, and in the meantime AFIT is not incomplete.
The rest of the embedded community is heavily leaning on AFIT, as we are switching too - here: #56


Adopt Tab UI component

Depends on https://github.com/containers/podman-desktop/issues/6909
See also https://github.com/containers/podman-desktop/issues/5757

Depends on https://github.com/containers/podman-desktop-extension-ai-lab/issues/1165


Add Font Awesome 5 Regular Icons

In the current selection of Font Awesome icons, only the solid options are available (both built into PatternFly 4, as well as part of the included CDN option).
Ideally, PatternFly 4 would also offer the Regular icon sets that are available for free (non subscription use), as part of the CDN option. The CDN URL for the Regular (free) icons is https://use.fontawesome.com/releases/v5.7.2/css/regular.css.
Currently, there are 150 Regular icons available to Font Awesome 5 Free users. https://fontawesome.com/icons?d=gallery&s=regular&m=free

Are you talking about react icons [1]? If so there is Pr https://github.com/patternfly/patternfly-react/pull/1385 opened to add regular icons as well.
[1] http://patternfly-react.surge.sh/patternfly-4/styles/icons

@karelhala This is for adding the Regular icon set into Core, in the case where it is used without the React library. It would be added under this line: https://github.com/patternfly/patternfly-next/blob/9bbbc1af24bc4809054cbf3a3081265546cc1e04/src/patternfly/_icons.scss#L10

@mindreeper2420 looking at the available icon set for react, we have over 1500 Free Font Awesome (solid, regular and brand) icons. Would adding these regular icons to Core align the available set to the 1500+ react set? I can only see a small subset of the currently available (recommended) icons that core has and have no idea if this will close the gap I described above?
I think it's important to point out that our recommended icon list will only overlap with a small portion of the overall icon set, but they are available to use if we don't have a recommendation.

bump


Integration Tests fails after merging spacetemplates

Log:
https://paste.fedoraproject.org/paste/56YKz0AL4rhFYaXerOnuew

The controller.replaceTimes function that is being used by the comparison of golden files tries to be agnostic to date times but it failed to find localized date time strings that contain the IST timezone string https://github.com/fabric8-services/fabric8-wit/blob/bf3f8b101277a46ad42d7cd255c0907f6868a229/controller/golden_files_test.go#L202
A quick fix to this would be add IST as a possible timezone string.

Assigned to @jarifibrahim according to https://chat.openshift.io/developers/pl/gkggc6ttx3drzpsuz5fk3irjsc


Revert "Merge pull request #3336 from rtfd/use-active-for-stable"

This reverts commit 0d9c3fefb1ea8a64272bfeff42cb37b8122ae335, reversing
changes made to 73b693ce4dd408e6a9f2812a8b7aaa9b9d205c7a.

Ready for re-review.


Updated geoip m4 file to support --with-geoip properly

Hi @csanders-git,
merged! Thanks for the patch ;)


Build provider is executed twice when one project has been removed

I've create a simple builder test provider:
class BuildTestProvider {

  constructor(cwd) {
    this.cwd = cwd;
    this.title = 'TEST';

    console.log("New Test Builder!!!");
  }

  getNiceName() {
    return this.title;
  }

  isEligible() {
    return true;
  }

  settings() {

    //-- Available apio commands
    return [

        //-- APIO build
        {
          name: 'Test:Build',
          exec: 'apm',
          sh: true,
          args: [ '--version'],
          keymap: 'ctrl-alt-v',
          atomCommandName: 'test:build',
        },
    ];
  }
}

It just invoke the command apm --version (for testing purposes)
I open 2 projects (with file/add project folder).  The build provider is executed two times, one for each project, as expected.  But if one project folder is removed (right click on the root folder and choosing the option "remove project folder") the build provider is executed twice as well, when it should be executed only once, as there is only one remaining project

I'm unable to reproduce this, see this gif (i'm printing the cwd it's getting settings from):

Could there be something else causing this?

I don't have the SAME exact issue, but I do notice that with a custom builder I am getting two processes spawned when building a single target. This was immediately after an upgrade to the most recent version.
Restarting atom, which installed a new dependency called busy, solved the problem.

@cr1901 Yea that's been known to happen from time to time. It's a problem in Core Atom, not package specific.
I'll close this as inactive.

Hi, I add more information about this issue: The problem is that BuildTestProvider registers N triggers for N project folders and then the command "test:build" is called N times, even if you remove a project folder.

I have created a project to test this issue: https://github.com/Jesus89/atom-build-test. It seems that trigger register is not working properly. I would expect the same behavior in the "test:hello" menu command that in "Select active target > Test: Hello".


Set light theme as default

Hi, how can we set light theme as default?

Hi @MyWay
The theme is user preference. If they want to set the light theme as default, thy need to flick the switch in the top-right corner, like so:

Hi, thanks for your answer. I wanted to set light at start for everybody, then they are free to switch to dark and get their preference saved.

By default, the switcher is set to the middle. This will use the theme defined by in the user's operating system.
If their OS theme is set to light, then the website will be light.
If you wish to force light mode, even if the OS theme is set to dark, then you'll need to make some code changes.


All remote calendars have been fetched.

Just a quick issue that's been happening after the latest update.
Every time I open the calendar, or even if I simply move from another tab to the calendar tab.
I get an "All remote calendars have been fetched." notification in the top right corner.
Initially I didn't mind it, but it's happening so frequently that it makes me wonder what's causing it.
I have only 1 calendar., so not sure what the "remote" part means.
I definitely didn't have it in prior releases, so it's due to the latest update.
I would really appreciate it if someone sheds some light on why this is happening.
Thanks a lot!

Hi @valiantgenomics .
The issue you're experiencing may be related to the community plugin you're using. First, try identifying the name of the plugin and contacting its developer.

Hi @valiantgenomics . The issue you're experiencing may be related to the community plugin you're using. First, try identifying the name of the plugin and contacting its developer.

Hey, sorry about that. I just now noticed, that I've posted this issue in the general Obsidian git by mistake, instead of the plugin-specific one.
I honestly have no idea how this happened, but totally my fault for not paying attention.
I'll move the issue to the correct git now.
The admin/mods can delete this entire thread, as it's obsolete.
Thank you for understanding.


Docs unclear on setup for RN 0.72.6

SDK version: 3.1.13
Are logs available?
N/A
Describe the issue
The docs describe setting up in an older version of React native, specifically the `AppDelegate.h' file. The docs currently show:
 #import <UserNotifications/UserNotifications.h>
 @interface AppDelegate: UIResponder <UIApplicationDelegate, RCTBridgeDelegate,UNUserNotificationCenterDelegate>

 @end

However with a more recent version of React Native this should actually be:
#import <RCTAppDelegate.h>
#import <UserNotifications/UserNotifications.h>

@interface AppDelegate : RCTAppDelegate<UNUserNotificationCenterDelegate>

@end

Screenshots

Additional context

Thank you for sending this suggestion to us. We appreciate it!
We will have an update to our docs published shortly.


GenericClusterExecutor is always using all cores

Snakemake version
6.7.0
Describe the bug

Both SynchronousClusterExecutor and GenericClusterExecutor are initialized with the cores parameter set to None
https://github.com/snakemake/snakemake/blob/26373e66fbaba04fa076aebb24ad869f41f228b9/snakemake/scheduler.py#L202
The interpretation of that value is to run on all cores
https://github.com/snakemake/snakemake/blob/26373e66fbaba04fa076aebb24ad869f41f228b9/snakemake/executors/__init__.py#L707
In practice this means that a group job with 1000 constituents will launch some jobs that each spawns up to a 1000 processes.
Logs

Minimal example

Do something like
snakemake --cluster foo --jobs 100000 --cores 1 --local-cores 1 --groups some_workflow=group0 --group-components group0=1000

Additional context

This bug is urgent since it makes cluster execution of group jobs impossible for me.
Group Rules consume more threads then provided by the SGE job and then are killed.

The group rules seem to not work as documented, so you might want to not use them anyways.

Hi, I ran into this bug while running the smk-simple-slurm profile on SLURM, it appears this happens even without setting group.
ssh into node where snakemake is running:
ps -efAL | grep koppstein | grep snakemake | wc -l
130

Then there are 130 threads which all look like so:
/localenv/koppstein/anaconda/miniconda3/envs/snakemake/bin/python3.10 -m snakemake --snakefile /data/xxxx results/refgenome/GRCm38.rg.fa.bwt --allowed-rules bwa_index_refgenome --cores all --attempt 1 --force-use-threads --resources mem_mb=1000 disk_mb=1000 --wait-for-files /data/xxxx/.snakemake/tmp.mnx23xka results/refgenome/GRCm38.rg.fa /localenv/koppstein/anaconda/projects/65f117d3bfe36f9ae474e4cc2ceb8237 --force --keep-target-files --keep-remote --max-inventory-time 0 --nocolor --notemp --no-hooks --nolock --ignore-incomplete --rerun-triggers mtime software-env input params code --skip-script-cleanup --use-conda --conda-frontend mamba --conda-prefix /localenv/koppstein/anaconda/projects --conda-base-path /localenv/koppstein/anaconda/miniconda3 --wrapper-prefix https://github.com/snakemake/snakemake-wrappers/raw/ --printshellcmds --latency-wait 300 --scheduler greedy --scheduler-solver-path /localenv/koppstein/anaconda/miniconda3/envs/snakemake/bin --default-resources mem_mb=1000 disk_mb=1000 tmpdir='/data/extended' partition=bioinfo logdir='logs' mail_type=END<EMAIL_ADDRESS>--mode 2

@johanneskoester If one wants to fix this, I guess the expected behavior would be for this to use the --local-cores parameter, no?
p.s. servus @caspargross ;)

Edit, this PR upon further testing does not fully solve the problem. All cores are still requested. I need to dig a bit further, but I think it has to do with the generation of the command line executor on the node which also has --cores all.


[SPARK-47443][SQL] Window Aggregate support for collations

What changes were proposed in this pull request?

This PR introduces support for Window Aggregates when partitioning is done against expressions with non-binary collation.
The approach is same as for regular aggregates. Instead of doing byte-for-byte comparison against UnsafeRow we fall back to interpreted mode if there is a data type in grouping expressions that doesn't satisfy isBinaryStable constraint.
Why are the changes needed?

Previous implementation returned invalid results.
Does this PR introduce any user-facing change?

yes - fixes incorrect behavior.
How was this patch tested?

New test is added in CollationSuite.
Was this patch authored or co-authored using generative AI tooling?

No.

+1, LGTM. Merging to master.
Thank you, @dbatomic.


Print graphs and filters

While this info is also shown in plots, those are not seen on text interfaces.

Let us merge once the test are passing. Probably a rebase should do.

Coverage increased (+0.09%) to 88.345% when pulling 2fd6840e6e7c72a8d9e41dea0fe84b04e9ac7c71 on print-graphs-and-filters into cb06eaf578938bb5d097db9797cf165a572eeeb3 on master.

Test fails because scikit-image replaced their camera(man) image from version 0.17.0 (used with python 3.6) and 0.18.0 (used with python 3.7-3.9). Refs: https://github.com/scikit-image/scikit-image/issues/3927, https://github.com/scikit-image/scikit-image/pull/4913, https://github.com/scikit-image/scikit-image/pull/4914.


google-cloud-sdk renamed to google-cloud-cli

Looks like gh actions hosted runners are now installing the latest renamed google-cloud-cli package so the action is failing when it tries to remove the deprecated google-cloud-sdk package
https://github.com/actions/runner-images/pull/8335
E: Unable to locate package google-cloud-sdk
Error: Process completed with exit code 100.

Facing the same issue, just put
large-packages: false

in the options, and it worked for my case

Facing the same issue, just put
large-packages: false

in the options, and it worked for my case

Indeed, but it would be nice not to have to throw the baby out with the bathwater. 😉

Made a PR: https://github.com/jlumbroso/free-disk-space/pull/18

Thanks for raising this and making a PR. Added this to my CI yesterday. Everything was working fine and today it broke

@wind57 Thanks for the manual workaround! 🙏🏻
@andreped Thanks for the PR. 🥳
@briedel @v1v @bhavaniravi @sensedata1 @Jonatha-Varjao @KurtAhn @tokatoka @kenjis @sp98 Sorry for the disruption. Please let me know if the latest release v1.3.0 addresses all your concerns. Thank you!


SetupTools

I suppose this should have its own ticket.
See https://jakcodex.github.io/muledump/docs/setuptools/ for more information.

Pushed to master.