Adding support for outbound EventMessage filtering

These are the changes I made to support my use-case of not wanting to publish certain events to AxonServerEventStore to alleviate possible quota issues. I don't anticipate this feature being used outside of the context of migrating to this kind of event store. But, anything is possible I imagine. I was getting errors in DefaultConfigurer and back ported the 4.6 version of code, so you can ignore that bit. I had to check that filteredEvents wasn't empty before passing the value along because it was causing a timeout in my code.
This is how my Spring (non-Boot) config looks now...
public Configuration serverConfiguration(AxonServerConfiguration axonServerConfiguration) {
    return DefaultConfigurer.defaultConfiguration()
        ...
        .configureEventStore(this::buildEventStore)
        ...
        .start();
}

private AxonServerEventStore buildEventStore(Configuration c) {
    return AxonServerEventStore.builder()
       .configuration(c.getComponent(AxonServerConfiguration.class))
       .platformConnectionManager(c.getComponent(AxonServerConnectionManager.class))
       .messageMonitor(c.messageMonitor(AxonServerEventStore.class, "eventStore"))
       .snapshotSerializer(c.serializer())
       .eventSerializer(c.eventSerializer())
       .snapshotFilter(c.snapshotFilter())
       .upcasterChain(c.upcasterChain())
       .eventMessageFilter(event -> event.getPayloadType().getName().startsWith("com.acme.api"))
       .build();
}

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


(BKR-60) failures caused by rubygems timeouts

add ability to set GEM_SOURCE to internal rubygems mirror

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/642/
:green_heart: Test passed.

yeah green :)


Create functionality to SORT search results using facets or metadata fields

@arnounesco @jmckenna @pbuttigieg @Lucy-Scott @fils
Approaching this point we have some doubts about how to find the fields you want to sort the results based of facet selected.
We understand you want to set different sort option on different facet selection.
For example selecting Documents the UI shows the way to sort result by A, B, C fields, and selecting Experts the UI shows the way to sort result by D, E, F fields.
We are imaging that this type of dynamism could be performed using metadata coming from SOLR endpoint.
As the UI read metadata to build different filter dropdown (Provider, Keyword, Contributor for Documents, etc...), we are thinking we can read something else to implement the sorting.

related to https://github.com/iodepo/oih-ui/issues/68


Update aws-java-sdk-core to 1.12.506

About this PR
📦 Updates com.amazonaws:aws-java-sdk-core from 1.12.459 to 1.12.506
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-core" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #578.


[Bug]  [emerg] no port in upstream "php"

What happened?
hi
i am using nginx and this for my site configuration , when i restart nginx service i get this error (nginx: [emerg] no port in upstream "php" in /etc/nginx/sites-enabled/client.conf:20) "
server {
listen 80;
 set $root_path '/var/www/boxbilling/src';
 server_name  client.stellar-host.com;

 index index.html index.htm index.php;
 root $root_path;
 try_files $uri $uri/ @rewrite;
 sendfile off;

 location @rewrite {
     rewrite ^/(.*)$ /index.php?_url=/$1;
 }

 location ~ \.php {
     fastcgi_split_path_info ^(.+\.php)(/.+)$;

     #pass to upstream configured in global nginx.conf
     fastcgi_pass php;

     fastcgi_param PATH_INFO       $fastcgi_path_info;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_intercept_errors on;

     include fastcgi_params;
 }

 # Disable PHP execution in bb-uploads and bb-data
 location ^~ /bb-uploads/ { }
 location ^~ /bb-data/ {
   deny all;
 }

 location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
     root $root_path;
     expires off;
     proxy_no_cache 1;
     proxy_cache_bypass 1;
 }

 location ~ /\.ht {
     deny all;
 }

}
BoxBilling Version
v4.22-beta.1.5
What version of PHP are you running?
PHP 8.0
Additional Notes
No response

 fastcgi_pass php;

You need to replace it with the correct settings

It depends on how Nginx and PHP are setup.
fastcgi_pass    unix:/run/phpphpx.x-fpm.sock
or
fastcgi_pass    unix:/run/phpphp-fpm.sock
You need to verify it first as it depends on the setup

Hi @motoporasda, has this solved your issue?
As this is directly related to a support request I'll recommend catching up with us on our discord server.
This issue will be closed now.


Add support for drag & dropping links into a category

Perhaps it's faster to add links just drag & dropping them inside a category, so that you only have to fill the title.

I like this idea! Took a quick look at how to do it and it may need a lil rewiring of the existing drag drop logic to make it work. I dont have the tie to get to this right away, but feel free to try it yourself and create a PR for it 😃

Also while we're at it, dragging and dropping the links between the categories and within them should also be just as easy. Right now the only way to do this is using the raw config.


incompatibility with ng-annotate

Latest release 1.6.20 brings incompatibility with ng-annotate 1.2.1

There is insufficient information here to investigate; I don’t maintain ng-annotate, so I don’t know why it would stop working.

1.16.20 killed my build sooo...
Karma was giving an error "can't reference variable module"
The problem was by all of the topojson = module.exports = require.... etc...

Sorry, but that’s still insufficient information to investigate.


Improved DPlyr-Like Python Interface

For Python, we want to implement a dplyr-like interface so users do not need to use SQL to express their queries. Instead, they can manipulate the data using operations that will be converted into DuckDB physical operators and executed using the DuckDB query engine. Operators can be chained using a dplyr-like syntax (e.g. by overloading the '>>' operator).
Expressions are still modeled as strings, as this allows for easy combination of multiple expressions. They are parsed as SQL expressions, e.g. by prefixing them with 'SELECT ', throwing them in the parser and then extracting the operations again.
Example 1: read from CSV
import duckdb
# csv loading
read_csv = duckdb.from_csv('test.csv', sep='\t', columns=['C1', 'C2'], types=[duckdb.int32, duckdb.int32])
# perform filter and aggr
res = read_csv.filter('C1 > 100 AND C1 < 120').aggr("COUNT(*)", groups="C2")
# print or convert to Pandas DF triggers execution and materialization
print(res)
df = res.to_df()

Example 2: use persistent storage
# open database file
db = duckdb.open('database.db')
# read CSV again
read_csv = duckdb.from_csv('test.csv', sep='\t', columns=['C1', 'C2'], types=[duckdb.int32, duckdb.int32])
# write into table, this will trigger write into persistent storage
read_csv.store(db, 'test')
# read from table and filter again
db.table('test').filter('C1 > 100').print()

Example 3: update/delete
# open database file, reading table 'test' from disk again
db = duckdb.open('database.db')

# delete some rows, this will affect the persistent storage
db.table('test').filter('C1 < 0').delete()
# update rows, this will affect the persistent storage
db.table('test').filter('C1 = 999').update('C1 = NULL')

I think this is a great idea. I am not sure about the >> syntax, I would much prefer the
res = read_csv.filter('C1 > 100 AND C1 < 120').aggr("COUNT(*)", groups="C2")

Syntax. The reason why dplyr has the %>% is because calling functions on S3 objects in R cannot use postfix notation.

The Python equivalent to dplyr is https://docs.ibis-project.org/notebooks/tutorial/2-Basics-Aggregate-Filter-Limit.html.

Implementation Ideas
Every node returns a duckdb.Relation object. This object has a list of names and a list of types. The node has functions for printing it (print) and for performing additional operators. The node itself does not represent any materialized data initially, only on calls to e.g. print or to_df() will the relation be materialized by executing the query.
The following operators seem necessary (perhaps there are some I am forgetting):
Sources

from_csv(filename, separator, names, types, ...): Read a CSV file and produce a Relation
from_df(pandas_df): Read a Pandas DF and produce a Relation
db.table(table_name): Read a table from the database and produce a Relation

Manipulation

project(select_list): Returns a new Relation with the names/types of the given select_list.
filter(predicate): Applies the filter to the Relation, the names/types of the result do not change
aggregate(aggregates, groups): Performs the (optionally grouped) aggregations. Returns a Relation that holds the groups and the aggregate results.
join(target, on, type=duckdb.InnerJoin): Performs a join with the target relation. on can either be a single string column (in case the names are the same) or a condition (e.g. l_orderkey=o_orderkey). Returns a Relation with the combined columns of both input relations.
cross_product(target): Performs a cross product with the target relation, similar to join but without join conditions.
limit(n, offset=0): Performs a limit+offset operation, the names/types of the result do not change
order(order_list): Performs an ORDER BY operation, the names/types of the result do not change.
distinct(): Performs a DISTINCT operation, the names/types of the result do not change.

Modifying Data
All of the modify operations directly trigger execution and do not return a relation.

delete(): Delete the input tuples. Delete() can only be used if there is a single db.table() source.
update(update_list): Update the input tuples to the desired values. Update() can only be used if there is a single db.table() source.
store(db, table_name, temp=False, overwrite=False): Store the Relation as a table with the given name in the provided database, potentially overwriting the table if the option is set.
append(db, table_name): Append to an existing table in the given database. Throws an error if the table does not exist or the columns do not match.

Result Visualization/Conversion

head(): Fetch a single chunk from the result and print to screen in pretty format
print(): Materialize result and print to screen in pretty format
to_df(): Convert relation to a Pandas DataFrame

More Examples
import duckdb
# table: integers(i INTEGER)
# query: SELECT SUM(i)+2*COUNT(*) FROM integers WHERE i>10
db = duckdb.connect('test.db')
# produces a relation -> names: ['i'] types: [INTEGER]
tbl = db.table('integers')
# returns a relation with the same names/types  -> names: ['i'] types: [INTEGER]
tbl = tbl.filter('i > 10')
# aggr without groups, optional aliases can be provided
aggr = tbl.aggr(['SUM(i)', 'COUNT(*)'], names=["sum", "count"])
# projection now can only refer to the aggr columns
proj = aggr.project('sum * 2+count')
proj.print()

For lists, I would argue we allow you to either provide a Python list, or to perform the comma delimination inside the string itself, i.e. the following are identical:
tbl.project(['i', 'i+2'])
tbl.project('i, i+2')

Actual Implementation
All of these operators map very naturally to our individual LogicalOperators, and by creating a logical plan we can run all our optimizers prior to execution. The composability where everything returns a Relation seems very clean and clear to me as well.
The main implementation difficulty here is I think parsing the expressions and binding them, however, this should not be very complicated either. The expressions can be parsed using our SQL parser, and then column references can be resolved by looking at the input relation and turned into BoundColumnReferences. Other operators/functions will be similarly bound.
Catalog lookups happen only in the db.table operator. Note here that we should keep a transaction open not just during execution, but also during the construction, because e.g. if db.table binds a table it should not be allowed for another transaction to then delete that table as that would produce a crash.
Functions are a concern as well, as they live in the catalog of a database as well, however we can simply resort to only resolving built-in functions here instead of performing a lookup in the DB catalog.
Multiple Databases
This interface also allows easily combining tables from different databases, although some care must be taken w.r.t. transactions here as operating on multiple databases at once also means having multiple open transactions. Modifications (update/delete/append) should always only concern a single database, however, and as such not pose much of a problem.

@Mytherin That is a very close description of Ibis, definitely there are slight differences in the API but Ibis is also a dplyr-like frontend to multiple databases that builds up an expression tree. You should definitely check it out before replicating it.

Indeed we should check if we could extend ibis to do what we envision.

I would say we should not limit this interface to Python, we can create the interface in C++ and then create a Python layer on top of it.
Looking at Ibis I can see that it has some similarities but a bunch of differences as well that I don't really like, e.g.

table.group_by(keys).aggregate([metric]): The grouping and aggregate being separate introduces a lot of problems from a user perspective because the group_by cannot really return a relation (at least in Pandas) but instead returns a special "grouping object". This is problematic from an interface design perspective and not so clean imo. Having the aggregate and grouping be together makes this much cleaner as the aggregate function simply returns a relation just like all the other operators.
table[table.bigint_col > 50]: This kind of design seems clean for simple cases but gets pretty ugly when you want to combine multiple conditions imo. A simple condition like i > 50 AND i < 100 now becomes table[(table.i > 50) & (table.i < 100)], with required brackets because of operator precedence, and you get very weird errors if you instead do the more logical table[table.i > 50 & table.i < 100] or table[table.i > 50 and table.i < 100]. Doing like filter('i > 50 AND i < 100') seems cleaner and more user-friendly to me. We can use prepared statements to allow for variables, e.g. filter('i > $1 AND i < $2', 50, 100). This is also consistent with the SQL interface.
Having all these different functions to achieve SQL-like behavior also introduces a large unnecessary learning curve to people that are familiar with SQL already, e.g. look at this snippet from the tutorial:

cond1 = table.bigint_col > 50
cond2 = table.int_col.between(2, 7)
table[cond1 | cond2].count()

I would argue this is significantly cleaner and more readable:
filter('bigint_col > 50 OR int_col BETWEEN 2 AND 7')

I'm not entirely opposed to implementing the ibis like interface as I know people in the Python community are used to it, but I think the interface proposed here is much cleaner and more user-friendly. Having worked with Pandas (which has a very similar interface) I think it has a number of design flaws that make it very difficult to work with and have a number of very surprising behaviors. The proposed interface also maps very cleanly to the implementation of our database, which makes it easy to implement and maintain.

Also interesting is a programmatic way to construct CREATE TABLE statements

This is being worked on in the pyrel branch


Preprocessing of Assembly101 dataset

Hello, thank you so much for the inspiration your work provides.
I'm having some difficulty processing the Assembly101 dataset, could you please update the ./Preprocess/1_generate_pose_data.py file?
Thanks!

Can you provide the errors it throws out when running this script? You can specify the problem you encountered

@kikizan Hi, I am gonna close this issue after this weekend. Any detailed information about your problems is appreciated and can postpone the scheduled closure.

Hello, I encountered a video_id_json read error when using the 1_generate_pose_data.py file to process data. I made some modifications: annotations_ = pd.read_csv(path_to_csv + split_type + ".csv", sep=',', low_memory=False), the program can be trained smoothly.
However, the loss has always been nan during the training process. I wonder if you know the reason.
[ 2023-11-14 16:50 ] ###start training###
[ 2023-11-14 16:50 ] adjust learning rate, using warm up, epoch: 5
[ 2023-11-14 20:08 ] training: epoch: 1, loss: nan, top1: 4.59%, lr: 0.010000
[ 2023-11-14 20:08 ] adjust learning rate, using warm up, epoch: 5
[ 2023-11-14 23:04 ] training: epoch: 2, loss: nan, top1: 4.59%, lr: 0.020000
[ 2023-11-14 23:04 ] adjust learning rate, using warm up, epoch: 5
[ 2023-11-15 01:59 ] training: epoch: 3, loss: nan, top1: 4.59%, lr: 0.030000
[ 2023-11-15 01:59 ] adjust learning rate, using warm up, epoch: 5
[ 2023-11-15 04:51 ] training: epoch: 4, loss: nan, top1: 4.59%, lr: 0.040000
[ 2023-11-15 04:51 ] adjust learning rate, using warm up, epoch: 5
[ 2023-11-15 07:42 ] training: epoch: 5, loss: nan, top1: 4.59%, lr: 0.050000
[ 2023-11-15 08:02 ] evaluating: loss: nan, top1: 4.57%, best_acc: 4.57%

Okay I think I figure out part of the problem.

You can delete all the csv files in 'fine-grained-annotations' (you downloaded from googledrive) except the file 'test_challenge.csv'. Then pls download the csvs in this repo, which are 'train.csv', 'validation.csv', and 'actions.csv'. Put them in your previous 'fine-grained-annotations' directory.

This time your directory structure looks like:
path/to/your/downdload/root
├── fine-grained-annotations
│   ├── test_challenge.csv  (@30fps)   [This file is download from googledrive]
│   ├── actions.csv                    [This file is download from asb101 repo]
│   ├── train.csv           (@60fps)   [This file is download from asb101 repo]
│   └── validation.csv      (@60fps)   [This file is download from asb101 repo]

The main difference is the new 'train.csv' and 'validation.csv' are 60 fps, and their headers are also changed. So now don't use your modified line: annotations_ = pd.read_csv(path_to_csv + split_type + ".csv", sep=',', low_memory=False). Get it back:

annotations_ = pd.read_csv(path_to_csv + split_type + ".csv", header=0, low_memory=False, names=name_list)

You can re-run the lines in Generating Data to re-generate your dataset and splits.

As for the mentioned nan-loss problem, I am working on replicating it on my machine.

Glad to hear that the nan-loss problem problem have been solved.
In my experiments with torch1.9.0+cu111, GeForce RTX 3070 GPUs and CUDA version 11.4, I can get the avg results of SBU reported in my paper (2 out of 5 folds can even reach 100% acc). I have to say it is really hard and time-consuming to tune the hyper-parameters (e.g. window_size, architecture configs, kernel_size, etc.) FOR SBU DATASET to reach a high acc in my exp. It might probably be the variance when reproducing in a different env with a set of specific tuned hyper-parameters, since SBU dataset is quite small.
Also, the 5-fold cross validation setting makes each testing split extremely small and very susceptible. Even one more sample in a testing split failed to be recognized can make the acc drop by 2%. So your "much worse" results may be just only 1~2 more samples per split that the model fails to classify correctly. This variance problem still holds if you train and evaluate a different model using SBU, unless doing lots of tuning jobs.
BTW, for the other 3 datasets there can't be a high variance of acc, because they have sufficient testing samples.
I will leave this issue open till this weekend. But don't worry. I will reply all the issues and comments under this repo, though I am not working on action recognition now :)


Add Language file for EEx

I've added a language file for EEx (embedded Elixir) using a tweaked ERB language file.
Please let me know if there's anything I forgot to add or if there's anything that could be improved. Thanks!

Alright, this obviously needs some more work to get the detection working. I'll check it out as soon as I can and will report back.

I think I need some guidance here. EEx support works and it’s properly detected, but the build is failing because the ERB file is wrongly marked as an EEx file.
Since EEx and ERB are very alike and probably because EEx comes before ERB alphabetically, this is to be expected. However, I think it’d probably be a good idea to turn off auto-detection for EEx to prevent false positives.
What do you think? Is it possible to turn off auto-detection for EEx?

@isagalaev what do you think? Maybe we should embed EEx into Elixir definition?

The general set of rules for very similar languages is this:

In the wild we don't actually care what language name is assigned to a snippet, as long as it gets highlighted in a useful way (e.g. in if (name == "something") { ... } we don't care if it's Java, C++ or Rust as long as if is a keyword and something is a string).

For a test snippet it does make sense to tweak it so it has more distinguishing language features and gets detected properly. After all, Ruby and Elixir aren't identical.

So, in practical terms: let's identify what Ruby has that Elixir doesn't (and vice versa) and make sure those features are present in ERB and EEx snippets. The relevance difference doesn't have to be big.


Add grid discovery url and initial size

Grid should have etcd discovery url and initial size. If discovery url is not given, then server will generate public etcd discovery url based on initial size.

#52 fixed this


Fix sed preprocess_command example

Current sed command only removes first line of file.
Edited command removes entire Front Matter block.

Thanks for the pull request, @remy-actual.
Your command does not work for me. Here's what I get when I run the following using the built-in version of sed that comes with macOS:
$ sed "1{/^---$/{:a N;/---$/bash --version;d}}" screen.scss
sed: 1: "1{/^---$/{:a N;/---$/ba ...": unexpected EOF (pending }'s)

Perhaps you are using a different version of sed? Ideally we'd have a command that works on both macOS and Linux. Thanks!

Yes, I am using gnu-sed installed from homebrew with --with-default-names flag.
However, sed command currently in the README doesn't work with either gnu-sed or Mac OS X's default FreeBSD sed. The first --- line is removed, not the full front matter block.
I've added a notice, as well as a little more info concerning the use case: Issue #787

Merged in 2615dfade9b741e678931abdac1598cce3058fb1. Thanks!


ENH try parsing code after cell magic, ignore if can't

I haven't (yet) got to the root of the issue, but the notebook in question is
https://github.com/microsoft/computervision-recipes/blob/1bb489af757fde7c773e16fab87b24305cff4457/scenarios/detection/20_deployment_on_kubernetes.ipynb

I get
$ nbqa black scenarios/detection/20_deployment_on_kubernetes.ipynb
error: cannot format scenarios/detection/20_deployment_on_kubernetes.ipynb: Cannot parse: 50:1: [print(f) for f in Path(data_path()/"odFridgeObjects"/"models").glob('**/*')]
Oh no! 💥 💔 💥
1 file failed to reformat.

For cases like this a --keep-parsed-notebooks flag is usefull (kinda related to #321)

Yes, that'd be good!
Even with that, I can't tell what the problem is:
# %%
import sys
sys.path.append("../../")

import os
from PIL import Image
from pathlib import Path
import requests
import json
import inspect

from utils_cv.common.image import ims2strlist
from utils_cv.common.data import data_path
from utils_cv.detection.model import DetectionLearner, get_pretrained_fasterrcnn
from utils_cv.detection.dataset import DetectionDataset
from utils_cv.detection.plot import (
    display_bboxes,
    PlotSettings,
    DetectionBbox
)
from utils_cv.common.azureml import get_or_create_workspace

from azureml.core.webservice import AksWebservice
from azureml.core.compute import AksCompute, ComputeTarget
from azureml.core.model import Model, InferenceConfig

# %%
type(0xDD9F885E)  # %reload_ex 0xDD9F885E
type(0xA4B2F1E3)  # %autoreloa 0xA4B2F1E3
type(0xA34775A)  # %matplotli 0xA34775A

# %%
# Azure resources
subscription_id = "YOUR_SUBSCRIPTION_ID"
resource_group = "YOUR_RESOURCE_GROUP_NAME"
workspace_name = "YOUR_WORKSPACE_NAME"
workspace_region = "YOUR_WORKSPACE_REGION"

# Choose a size for our cluster and the maximum number of nodes
VM_SIZE = "STANDARD_NC6" #STANDARD_NC6S_V3"
NODES = 3
KUBERNETES_CLUSTER_NAME = "od-aks-cluster"
DEPLOYMENT_SERVICE_NAME = "drink-detector"
MODEL_NAME = "drink-detector"

# %%
[print(f) for f in Path(data_path()/"odFridgeObjects"/"models").glob('**/*')]

# %%
detector = DetectionLearner.from_saved_model(name="my_drink_detector", path=data_path()/"odFridgeObjects"/"models")

nevermind, not a bug, we just need to ignore the cell '%%writefile'

@MarcoGorelli : why not ignore all the cell magics(%%) by default? I mean the entire cell.

We could do, but then there are cases when cells with cell magics contain valid code, e.g. %%time. Maybe we could do something similar to your idea of what to do with inline magics - check if what follows is valid Python code, and if it is, keep it, else ignore it?

How about checking if the cell magic contains python code (use ast.parse and look for Syntax error) and include it otherwise ignore those cells

We could do, but then there are cases when cells with cell magics contain valid code, e.g. %%time. Maybe we could do something similar to your idea of what to do with inline magics - check if what follows is valid Python code, and if it is, keep it, else ignore it?

I feel this gives a better user experience because we don't need to educate every user to ignore non python code cells for nbqa to work.

Yes, that would be much better actually...we might not even need --nbqa-ignore-cells about that, and I'm always happy to remove things from the public API :smile:
I can give a go at this later if you like

We could open a separate issue or use this one to track the task. I can pick this up sometime later this week.

OK let's keep this issue for it
And sure, if this overlaps with the work you already wanted to do for inline magics, I'll assign you

closing as I think the current solution of --process-cells is good enough


Node * and Node lts/* CI jobs are duplicates

Bug Report
In the GitHub Actions CI matrix, the Node versions * and lts/* both resolve to the same version (currently 18.12.1), making these two jobs duplicates.
🔎 Search Terms
CI, continuous integration, Node version
🕗 Version & Regression Information
N/A
⏯ Playground Link
https://github.com/microsoft/TypeScript/actions/runs/3721283259/jobs/6311330943#step:3:9
https://github.com/microsoft/TypeScript/actions/runs/3721283259/jobs/6311330986#step:3:10
💻 Code
https://github.com/microsoft/TypeScript/blob/main/.github/workflows/ci.yml#L21-L22
🙁 Actual behavior
The Node version in the two CI jobs are the same, making them duplicates.
🙂 Expected behavior
The Node version "*" in the matrix should be changed to "19.x" so that tests run using the latest Node version.

This has to be a bug in setup-node, as their docs say that if check-latest is enabled, it will pull the latest dist from https://nodejs.org/dist/index.json which says 19.3.0.
Honestly, I'm not super convinced that we should keep using these special version specs. This issue is one problem, but now we're technically supposed to be testing 14/16/18/19 but our workflow doesn't actually hit 14 anymore, which is a problem.

Ah, so "*" means "whatever is newest on the runner", versus "current" or "latest" which explicitly pull the newest. I can change us to doing that, but I am a little unhappy with the fact that we don't quite get the versions right already.

It kind of makes sense though - I would generally interpret * in this context to mean either "try all versions" or else "use whatever, I don't care"


Make content wider, Update some pages

increase content width from 740px to 900px (wider makes it a bit harder to read, lines are too long)
fixed https://titaniumsdk.com/guide/Alloy_Framework/Alloy_Guide/Alloy_Concepts.html#alloy-and-the-titanium-sdk table
removed some warning blocks
removed some download images (those big green down arrows)
cleaned up Compatibility matrix
removed version numbers from https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_Getting_Started/Prerequisites/ and linked to Compatibility matrix right away. So we only have to maintain one list of version numbers
updated links in https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_Guide/Welcome_To_Titanium/Titanium_Resources.html

To see the real page you can use the Preview rich diff (the :page_facing_up: icon on the top right side of the file view) to see the differences in markdown mode.

Updated the last parts:

removed all gperf/git links and pages
jdk -> ndk mistake
adjusted the headline on the support page


here we can call action as set_categories

https://github.com/RubyForceTeam/cookbook/blob/5f9d69b279e58aae8e0710497091e1d0100fe5be/app/controllers/admin/subcategories_controller.rb#L4

fixed


The unfortunate practicalities of adopting containerd

I recently tweeted two things that I don’t think were well received and I’d like to elaborate on them.  As those who know me, I’ve been very interested in containerd from its inception.  I think the technology is incredible and as such have been planning to adopt containerd over the last year.  If you don’t know my day job is providing two products Rancher, a container management platform now focused solely on Kubernetes, and RancherOS a lightweight container based Linux distro.  I’ve have always planned to drop Docker support in these products and solely run and support containerd.
The tweets I sent came after some research in which I discovered, much to my disappointment and surprise, it would be far easier to adopt cri-o at this stage than it would be containerd.  And this largely comes down to one piece of technology, podman, but points to a much bigger issue.
People have asked me to explain my issues with containerd, and I want to make it very clear they are not technical and not even the fault or doing of the containerd team.  This is high level, real world practical stuff.  In reality, I think Red Hat is very motivated and focused on a singular goal of dropping Docker (and by association containerd).  As such they seem to have covered their bases well.
What users want
This sounds harsh, but most users don’t want or not want containerd.  They don’t know, they don’t care.  Over and over again I have mentioned in passing that I’d like to replace Docker with containerd in Rancher products and that always raises concerns with users.  They don’t understand what that means.  At this stage, the mainstream users want two things for specific uses: Docker and Kubernetes.  Docker for most people is their primary interaction with containers.  They use it on their laptops and in CI to develop and build container images.  They also use it as a way to view and interact with containers on a single host.  Kubernetes, for most, is the way you run containers in production.  For many reasons, this is just what we have today and I don’t see it changing.  Much of the hype in the container world is dying and people are looking to just get stuff done.  So where the world has mostly landed is Docker is good for your laptop or single server running containers.  Kubernetes is for running lots of containers.
CRI is about three levels too removed for most users.  Honestly most people are quite content with the status quo of the dockershim.  Almost by definition, switching CRI is largely transparent to users.  The transition to a new CRI is either a political or internal technical concern, but not a user concern.
The fundamental issue
So here is the fundamental issue.  Users largely don’t care or are asking for a switch in CRI or containerd in general.  If I was to adopt containerd I have to convince people to as why this is better.  The first question is “How does this impact me?”  The answer is, you can not use docker CLI to interact with containers anymore.  This is pretty much unacceptable to most users.  Docker CLI is what they know, and would like to continue with it.
You have to take a step back and ask why does a vendor like me (Rancher) want to adopt containerd and what does a user want out of Docker.  I would like to adopt containerd because it is a better (easier to support) non-opinionated piece of technology I can leverage to deliver solutions.  Putting Docker on top of containerd adds an opinion I may not agree with, and adds components I do not wish to support. So containerd brings flexibility to me, but Docker removes that (which is largely the design of Docker).
For most users, what they want is really Docker 1.10.  Basically pre-Swarm, pre-libnetwork.  The core UX of run, ps, push, pull, build, exec, logs.  If people have those basic commands they are largely happy.
Enter podman
This is where cri-o has nailed it.  They built podman which is an almost exact clone of Docker 1.10 CLI but interacts with cri-o.  You can literally symlink docker to podman and most users wouldn’t be the wiser or really care that much.  So if I want to use docker directly on my server to run a container, podman works just as Docker CLI did.  If I’m running pods through k8s I can also use podman to troubleshoot locally on the host.  Podman mitigates the end user problem and reduces the friction of moving away from Docker.  It allows me as a vendor to essentially push a change on users they didn’t exactly ask for.
The major dilemma with containerd
I can’t stress enough how important podman is.  This has been a fundamental stumbling block for me adopting containerd.  It is clear that if I adopt containerd I must build a docker UX compatible shim on top of containerd.  As much as I’d love to I don’t have the time and can’t fully justify building that shim.  It’s a big investment and might be perceived wrong. If I go with cri-o, they already built it and Red Hat obviously has the money to support it.  I don’t get everything I want with cri-o, but I can live with that.  I still get a more flexible and easier to support component.
This docker lite shim must be built by containerd or the Moby project.  This is where it seems to get complicated.  I’m basically asking you to bite the hand that feeds you.  This is why I came to the conclusion containerd may eventually fail in becoming widely adopted in k8s.  I don’t know if it is possible to do this or if I can get anybody to agree with me.  I don’t see how Docker, Inc would like this approach.  Maybe this the time to prove that Moby Project/containerd != Docker, Inc.
This is a quick high level of what needs to be built.
Standalone CLI that talks directly containerd daemon (no extra daemon)
Docker 1.10 CLI UX (added bonus if a subset of 1.10 (v1.22) could be supported)
No libnetwork, swarm, docker plugin framework, or volume drivers
Networking using simple CNI
Content trust is not the only option
Registry resolution is more configurable (override index.docker.io)
BuildKit integration
Sorry if I sound like a whiny open source user demanding more work for free.  But that is basically what it is, I don’t have resources to fix this myself and Red Hat does and did.  The world moves forward and beautiful technology such as this often doesn’t achieve it’s full potential.  I would very much like to see containerd become the defacto standard in Kubernetes.  Up until this last week I just assumed that would happen but I feel I vastly underestimated Red Hat.

Thanks for writing this up Darren. Very useful to see it laid out so clearly.
To me, the disconnect here is maybe the intention of where containerd fits and who the user base is. This could end up being a long discussion, but the starting point is to determine whether containerd was meant to be a "replacement for Docker" in all use cases or not. I would suggest that was never the intention of containerd, and so the search for a "replacement for Docker" today will probably lead people to "podman" or "rkt" or other potentially cobbled-together pieces from various vendors (e.g. "I build my containers with Google Container Builder and push them to gcr.io").
From my perspective, the end users that want to have the Docker experience will still use the Docker client UX (e.g. Docker for Mac, Docker CE on Linux). I'm possibly surprised that there is an assumption that the integration of containerd as a "core container runtime" for, say, an operated/managed Kubernetes cluster, should have any impact on decisions for developer workflow, unless, like the Red Hat case, there is an imperative that any piece of Docker, Inc. created technology must be purged from the workflow; hence podman as the final piece in that solution (added to buildah, skopeo, etc.).
In the case of pluggable CRI, like you said, users should not care, and operators will be driven by small technology-driven comparatives or base politics of "containerd vs. cri-o" silliness. The operations teams that run these clusters do have some shifting to do if they relied on the Docker client UX to do management tasks on the cluster, or possibly, if they have a solution that used a mix of "out of cluster" use of the container runtime and in-cluster pod deployments. In the IBM case, this means for our operations teams we are creating a docker <cmd> ... -> ctr <cmd> ... map for learning how to do the same simple management/admin tasks via the ctr client, which has all the basic run, create, start, exec, info/ps-like functionality necessary for these tasks.
So, that leaves us with possibly a hole where you see containerd as a viable replacement for a container runtime in Rancher, but foresee based on your user's use model, the expectations for continued "Docker UX-like" fronting of that engine? Sorry--this is where my lack of full understanding of Rancher's model is not helping me.
To be specified based on your list:

Standalone CLI that talks directly containerd daemon (no extra daemon)

So... ctr? 😅

Docker 1.10 CLI UX (added bonus if a subset of 1.10 (v1.22) could be supported)

Yeah.. so, this is where we have a disconnect.

No libnetwork, swarm, docker plugin framework, or volume drivers

Yes, containerd meets this.

Networking using simple CNI

Yes, containerd can provide this.

Content trust is not the only option

Sure. containerd doesn't even integrate notary support; that would be a higher layer.

Registry resolution is more configurable (override index.docker.io)

Yes, containerd has no opinionated registry resolution.

BuildKit integration

the BuildKit -> containerd integration is available. I assume you mean a docker build driven UX for this?
The interesting thing based on the original tweet that is confusing to me: podman doesn't have direct integration with cri-o at all (and I'm sure if I'm wrong I will be very quickly corrected) :grin:. cri-o only exposes a CRI interface; there is no client. This was the promise of cri-o; it would only be useful to run K8s pods and be "only as much of a runtime as Kubernetes needs." I assume the understanding that podman is the client for cri-o is because it uses the same libraries (containers/image and containers/storage) and both use runc as the "runtime" so that there can be shared state between them? Otherwise, I don't actually understand what you mean that podman is the client for cri-o? To me, podman fits yours and others desire for a pre-Docker 1.12 variant of the docker client UX, and therefore works well with other replacements for Docker capabilities like skopeo, buildah, etc.

podman doesn't have direct integration with cri-o at all (and I'm sure if I'm wrong I will be very quickly corrected) ...

In short, podman and cri-o are going to both be based on libpod so everything will be operating on the same storage and state (currently this rework is still in progress but a lot of progress is being made). (This is a fairly large simplification and I'm sure @mrunalp, @rhatdan, and the others can explain the plan much better than me.)

cri-o only exposes a CRI interface; there is no client.

There is cri-tools which is a CRI-only tool that isn't specific for any CRI implementation. So there isn't a real need for a "client" for CRI. What people want is to be able to operate on the containers without cri-o running.

Correct the goal of podman is to be able to work behind the scenes of CRI-O and be able to examine/manage the storage of CRI-O but it does NOT talk to the daemon in any way.  CRI-O, Buildah, Podman, Skopeo all can work on and share the same containers/storage datastore, and eventually will be able to understand each others containers.
Any tool like kubernetes or cri-tools that talks the CRI can talk to CRI-O.  But none of the above mentioned tools do.

BTW Phil which features post docker-1.11 would you like to see podman implement?

@ibuildthecloud Thanks for your feedback!
I only have one question. Have you checked crictl?
crictl is a CLI developed by Kubernetes upstream to provide the same debug experience across all CRI container runtimes. It has docker like CLI, but not exactly the same (intended). It is beta now, and we are planning to graduate it to GA this release.
I do agree that docker CLI is what people familiar with for their daily development. However, I don't think we should provide exactly the same docker CLI for Kubernetes node debugging. The reasons are:

Many commands in docker CLI doesn't make sense, or may even break Kubernetes node, e.g. docker rename, docker restart, and of course docker swarm. In crictl, we make sure we have enough commands for regular node debugging, but don't have those commands may break the system.
Docker CLI is not conceptually align with Kubernetes, there is no "pod". In our production admin playbook, we have all kinds of docker ps | grep -v pause | grep .... In crictl, it is simply crictl pods.

@ibuildthecloud If crictl can't meet any of your requirement for Kubernetes node debugging, please let me know, we'll definitely improve it.
Again, I don't think we need a exactly copy of Docker CLI for Kubernetes node debugging. Don't Kubernetes deserve its own CLI for node debugging? We already have kubectl anyway, which is not Docker CLI. If today's crictl is not enough, we'd be happy to improve it.

+1 to what @Random-Liu said.
Just adding my $.02: The scope of this command line tool is limited by CRI, so it does not intend to be and will not be a full Docker CLI replacement. I get the sentiment of wanting the same user experience across the development and production environment, but stability and reliability should be prioritized over the "consistency of experience" in the production environment. Also, as @Random-Liu pointed out, crictl has potential to offer better debugging tool for kubenretes users.
If you have any feedback or would like to help contribute to crictl, please open issues in the kubernetes-incubator/cri-tools repository :-)

What else would you want with CRI-O? Would love to chat about what would take it to the next level for you....

@estesp containerd is not a replacement for Docker.  I like the scope, don't change that :)
I'm pointing out an issue that impacts the adoption of containerd and you should be aware.  I don't think it can actually be solved by the containerd project and really shouldn't be.  So this issue should eventually move somewhere else if some action was to be taken.  But I'm saying it's really in the best interest of containerd to understand this and ensure it's mitigated.
You've got to consider peoples motivations.  As I said before, the hype is dying so more and more people just want to "get sh*t done."  So forget idealistic views of how users "should" behave or roles like developers and operators.  I'm telling you everybody has this so wrong.  The whole "developers" are pushing Docker and Docker is for developers has been and still is completely wrong (but boy was it great for marketing).  I could go on a very long rant about this, but I'll stop.  The important part is, the same users that builds the container (authors the dockerfile) is often the same person deploying and running it in production (on k8s).
I hope this project realizes how critical it is that containerd becomes the de-facto standard in k8s.  If you don't containerd will just be a component of Docker like containerd 0.x.  If you don't give users a reason why they should use containerd, then they will just go the simplest route.  Right now Red Hat is doing a better job of giving users a route.  The one thing Red Hat could screw up is that they typically don't make their tech easily usable on distros that aren't fedora, centos, rhel.  But I think they know that.
What do I think should happen?  Moby Project needs to build it's own podman.  There should be a github.com/moby/cli project.  (yes I'm aware there already is a moby CLI and upwards of 15 people understand what it does).  This CLI should be what I described as before, "docker light, docker 1.11 UX" talking to one daemon which is containerd".  This tool should be simple, and static in nature.  It should be a very boring project in that it almost in maintenance mode from the start.  The project should be very friendly to Linux distros.  The CLI should be everywhere and easily installable with no corporate tie-ins or trademark issues. You need to get this to be what users expect.  You want users to demand compatibility with this tool.  If you don't, if users don't care, then Red Hat has full ability to remove Docker and control the full stack.  containerd as it stands today is held back by Docker CE.  For containerd to survive a new project needs to exist that provides the major of what people want from Docker CE, but bypasses it.
Do I think this will happen? Probably not, I have to be practical.
Let me get on my soap box here...
Everybody thinks their technology is great, it's going to take over the world and everyone will use it forever.  That doesn't happen very often, stuff changes so fast, and its getting faster.  I don't think Docker CE or Kubernetes has real staying power.  They will go their way as any other trend.  But the original docker, 1.10 style, was different.  That very much had staying power.  It was such a great swiss army knife that it could just be forever there in your toolbox like netcat.  But we really couldn't leave good enough alone.  So I fear Docker CE will fall by the wayside, and containerd will go with it.    Red Hat can mind-numbingly chip away at a problem for years until it's solved.  When the VC money dries up and SV gets distracted with the next trend, Red Hat will continue to chip away at this.
So really, whats the point of this issue?  None I suppose.  I expressed an opinion, some didn't like the opinion.  So I clarified it here.  The short of that opinion is I fear containerd may become irrelevant in the k8s space.  Hopefully I'm wrong.  I have a lot of opinions and 87% of them are wrong.
I'm going to close this issue, as what I stated in the beginning, this isn't an issue with containerd itself.

Scott:

What else would you want with CRI-O? Would love to chat about what would take it to the next level for you....

I think you are well aware this is pretty off-topic for an issue in the containerd repo, and would be very unwelcome if the inverse was done on a cri-o issue/discussion. Darren has been working in open source long enough that I think if he wanted to submit feature/bug requests for cri-o he knows where he can provide those requests (and I think he's already been doing that with podman).


libc v0.2.128

@Amanieu: no appropriate reviewer found, use r? to override

@bors r+

:pushpin: Commit 6aa01cf74c284b23b4f575a98cb1c803b0d6c72c has been approved by Amanieu
It is now in the queue for this repository.

:hourglass: Testing commit 6aa01cf74c284b23b4f575a98cb1c803b0d6c72c with merge 97136b0a97eedb19a4c3e667961f83ffde6a6933...

:broken_heart: Test failed - checks-cirrus-freebsd-14

@bors r+

:pushpin: Commit 1477a2f63d03cec6fa2d8b9c7d165e0ea87c3c5b has been approved by Amanieu
It is now in the queue for this repository.

:hourglass: Testing commit 1477a2f63d03cec6fa2d8b9c7d165e0ea87c3c5b with merge 3ca38e80d5297e424c7d6b0a1aa5e59a276ce26c...

:broken_heart: Test failed - checks-cirrus-freebsd-14

@bors r+

:pushpin: Commit a4518d95c8de528151694eb0d4d83d80654b673b has been approved by Amanieu
It is now in the queue for this repository.

:hourglass: Testing commit a4518d95c8de528151694eb0d4d83d80654b673b with merge dad43ed81605cf6fca6dadfd0c45bc4a5aad7a82...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13, checks-cirrus-freebsd-14
Approved by: Amanieu
Pushing dad43ed81605cf6fca6dadfd0c45bc4a5aad7a82 to master...


Flag all containers as being deleted as soon as requested

Rationale
PurgeParticipantsTask fails periodically when run during container deletion on TeamCity. This, currently, happens only when the project being deleted has subfolders. PurgeParticipantsTask checks whether the target container is being deleted but seems to get tripped up when we're in the process of deleting a whole project tree; only one container at a time is flagged as being deleted during this process.
This change makes ContainerManager.isDeleting() return true for any container that is currently being deleted or is about to be deleted.
Stacktrace
ERROR Table                    2023-06-29T11:13:19,543            JobThread-2.4 : SQL Exception with SQLState: 42P01
org.postgresql.util.PSQLException: ERROR: relation "studydataset.c262d257_dem_minus_1" does not exist
  Position: 747
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:356) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:496) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:413) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:190) ~[postgresql-42.5.3.jar:42.5.3]
	at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:177) ~[postgresql-42.5.3.jar:42.5.3]
	at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[tomcat-dbcp.jar:9.0.27]
	at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[tomcat-dbcp.jar:9.0.27]
	at org.labkey.api.data.dialect.StatementWrapper.execute(StatementWrapper.java:1618) ~[api-23.3-SNAPSHOT.jar:?]
	at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:162) ~[api-23.3-SNAPSHOT.jar:?]
	at org.labkey.api.data.SqlExecutor$NormalStatementExecutor.execute(SqlExecutor.java:136) ~[api-23.3-SNAPSHOT.jar:?]
	at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:114) ~[api-23.3-SNAPSHOT.jar:?]
	at org.labkey.api.data.SqlExecutor.execute(SqlExecutor.java:75) ~[api-23.3-SNAPSHOT.jar:?]
	at org.labkey.study.visitmanager.SequenceVisitManager.updateParticipantVisitTable(SequenceVisitManager.java:266) ~[study-23.3-SNAPSHOT.jar:?]
	at org.labkey.study.visitmanager.PurgeParticipantsJob$ParticipantPurger.purgeParticipants(PurgeParticipantsJob.java:128) ~[study-23.3-SNAPSHOT.jar:?]
	at org.labkey.study.visitmanager.PurgeParticipantsJob.run(PurgeParticipantsJob.java:83) ~[study-23.3-SNAPSHOT.jar:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

Query
ERROR Table                    2023-06-29T11:13:19,544            JobThread-2.4 : SQL  [13448]

    -- <SequenceVisitManager.updateParticipantVisitTable>
    INSERT INTO study.participantvisit (Container, ParticipantId, SequenceNum, ParticipantSequenceNum)
    SELECT CAST(?  AS VARCHAR(36))
    ) _

    -- /<SequenceVisitManager.updateParticipantVisitTable>
    ?[1] org.labkey.api.data.Container@1241472577 /QuerySnapshotProject/054/ 4f348baf-f8d5-103b-bbc2-a7893f7b64b0
    ?[2] org.labkey.api.data.Container@1241472577 /QuerySnapshotProject/054/ 4f348baf-f8d5-103b-bbc2-a7893f7b64b0

Related Pull Requests

#2113

Changes

Refactor ContainerManager.delete and deleteAll to flag entire tree as being deleted

Verified on TeamCity (failures don't look related to this change).
Community: https://teamcity.labkey.org/buildConfiguration/LabKey_237Release_Community_DailyPostgres2/2535528
Premium: https://teamcity.labkey.org/buildConfiguration/LabKey_237Release_Premium_GitExtraPostgres/2535669 & https://teamcity.labkey.org/buildConfiguration/LabKey_237Release_Premium_NightlyPostgres/2537064
Biologics: https://teamcity.labkey.org/buildConfiguration/LabKey_237Release_Premium_NightlyBiologicsPostgres/2535678
SM/FM: https://teamcity.labkey.org/buildConfiguration/LabKey_237Release_Premium_NightlySmFmPostgres/2537047


Crsisis Caller Use Cases

Problem
Problem 1: During a widespread infectious disease outbreak (e.g. Corona Virus), membership organizations need to check up on members on a periodic, regular basis without exhausting volunteers or putting them at undue risk.
Problem 2: After a disaster, community organizations with members want to determine which of their members are safe or affected by the disaster.
Solution
USE CASE 1:

An admin creates an incident called "Corona Virus (CVOID-19) Outbreak," including an affected area, which must be updated on a regular basis. E.g., if someone in Denver has a confirmed case of the Corona Virus, then the admin might add a 50-mile radius around Denver. Phone calls will only be sent in the affected area, to prevent panic and fatigue.
A leader of a membership organization or group such as a faith community ("Leader") registers the organization at coronacaller.org or some other URL.
Leader uploads a list of members in a standard format, e.g. by downloading a standard Excel file, and re-uploading it.
The only required information is a phone number, though there should be some minimum requirement that 75% or more also contain location data such as an address or lat/lon. This encourages sharing data on a map (rather than just hoarding all of the data to themselves, but allowing flexibility when Leaders do not have an accurate address. Fields include:

First and Last Name
Address or lat/lon
Language

Leader confirm/chooses periodic schedule for calls to go out

No more frequently than weekly.
Target timeframe (hours of the day, day of the week)
End date (no more than 3 months)

Leader confirms/chooses a caller ID phone number

Choose a custom number based on area code OR
Enter their own phone number. If they choose their own number, they must prove they control the phone number by verifying with a phone call and entering a custom code.

Leader confirms/chooses Polling questions. Polling questions will be pre-formulated, but the leader can choose the ones they want to include. They will be translated into multiple languages. E.g.

Do you or someone in your household feel sick, but have not been diagnosed?
Have you or someone in your household been diagnosed with CVOID-19 (the Corona Virus)?
Have you evacuated?
Each question will have at least one follow-up question.

Leader Records introduction/greeting or chooses default introduction

Optionally includes introduction/greeting in more than one language.
System calls the leader, who reads a suggested script into the phone, which is recorded and posted.
Leader also records a "callback" introduction message for people who may miss the call and call it back.

Outbound phone calls go out on the specified schedule.
All calls include a default disclaimer about how the information is used, with a reference to an online privacy policy.
An end user answers the phone call, listens to the introduction, and then selects responses to the questions using a keypad or voice recognition.
They will have three questions: 1. Type of damage/disruption. 2. Whether they have enough resources/supplies to be self-sufficient. 3. Question about emotional state or needs.
End user may also leave a message.
As soon as they respond, a dot appears on a PDA map, showing the type of distress,
User can select settings on the phone call. These include:

Call vs. text preferences
Frequency and time of day selection
Opt out completely
Change privacy settings (e.g. share personal information with public, just your organization, or other organizations)

All reports are added to a shared PDA map. Organizations have access to all personal information from their members. Personal information for other points on the map are hidden, per Crisis Cleanup's typical rules. "Claiming" is not allowed.
If the end user left a message, then the icon contains a "Play" button to listen to the message.
A user who missed a call can call the number back.

If they call from the phone number the system originally called, then they may enter a report using the same process above.
If they call a number used by only one organization, but from an unrecognized phone number, then they may enter a report after they are prompted to enter their address, either using a dial pad or voice recognition.

The system will need to comply with text and robocall laws (opt out, time of day)
Ensure that organizations do not have access to other parts of Crisis Cleanup, possibly through roles. Note: This might be the first step to integrating other services like donations management and volunteerism, and portals.

USE CASE 2:

Same as above, except for disaster preliminary damage assessments

Additional context and instructions
Add any other context or screenshots about the feature request here.

@arroyoDev For discussion.


[Bug] Lines are marked as covered in lcovonly, but they are not executed

Describe the bug
lcovonly and v8 reports are generated. All is marked correctly in v8 (great UI, by the way):

The lcov report is uploaded to Codacy and in their UI one can see that line which was not executed (test are running on Ubuntu, so the else branch is not reachable) got marked as covered:

Here is data for this file from lcov.info:
SF:source/path/Path.ts
FN:8,(anonymous_0)
FN:10,(anonymous_1)
FN:14,(anonymous_2)
FN:18,(anonymous_3)
FN:22,(anonymous_4)
FN:32,(anonymous_5)
FNF:6
FNH:5
FNDA:4358,(anonymous_0)
FNDA:0,(anonymous_1)
FNDA:890,(anonymous_2)
FNDA:1303,(anonymous_3)
FNDA:849,(anonymous_4)
FNDA:612,(anonymous_5)
DA:3,293
DA:7,293
DA:8,293
DA:10,293
DA:15,890
DA:19,1303
DA:23,849
DA:25,849
DA:26,849
DA:29,849
DA:33,612
LF:11
LH:11
BRDA:7,0,0,293
BRDA:7,0,1,0
BRDA:25,1,0,849
BRDA:25,1,1,0
BRF:4
BRH:2
end_of_record
TN:

I do not understand this data unfortunately. Hopefully it helps to understand, if Codacy’s report is correct or not?
To Reproduce

Version: latest
Node Version: LTS
Have you tried the latest version (including node), and does the issue still exist? yes

Expected behavior
Same output in both reports.
Additional context
Codacy coverage report can be seen here: https://app.codacy.com/gh/tstyche/tstyche/coverage/files/117115485336?bid=42144053&fileBranchId=42144053

I drop the lcov.info into https://lcov-viewer.netlify.app. Here is the result:

Looks odd that lines can have full coverage while branches and functions are not fully covered. But, as it was mentioned, I do not understand lcov.

If that is helpful, here is console-details output:

The last line is the important one. Here lines are not reported as 100% covered and that is correct. Or?

Seems there is a bug in lines coverage, I will check it.
v8 report should be the best one, as it directly uses native V8 coverage data, while lcov needs to convert V8 to Istanbul, which may lose accuracy.
By the way, do you have the opportunity to use codecov instead of codacy, because the report codecov is directly converted from V8, it seems it is right in codecov.json

Yes, console-details is directly uses native V8 coverage data too.

Indeed, it is tempting to switch to Codecov. I saw links in your readme and was comparing Codecov's and Codacy’s reports. Generating codecov.json directly sounds like the best solution. I was using Codecov some time ago. Hard to decide to come back, but I will think about that.
Anyway, I though it might help to report a bug as well.

Interesting. I was looking through Codacy's documentation, apparently internally they have their own protocol similar to Codecov. See here: https://api.codacy.com/swagger#tocscoveragereport
It is possible to upload coverage in that format via API endpoint: https://api.codacy.com/swagger#savecoverage
I will drop them a line asking, if they could make it possible uploading codacy.json via CLI as well. Or I could write custom reporter (looks rather trivial task, did I find the right lines?) and simply use curl. That sounds fun  ;D

Good news is I found out the root cause which is replated to static initialization blocks
There are different range between v8 and AST, so we haven't got the right line coverage in lcov.

I need to figure out hot to fix it and may require more time.

Thanks! Meanwhile I have send a feature request to Codacy: https://github.com/codacy/codacy-coverage-reporter/issues/506

@cenfun I have just spotted another issue related with static initialization blocks. Might be it already got fixed in the commit you have push.
Here is v8 coverage. Look at calls count in the static block. 4358 initializations does not sound realistic, because there are only 331 test.
Below you can find lcov generated by c8. Funny result for line 5, but otherwise 293 initializations is the number I would expect:

Thanks! Meanwhile I have send a feature request to Codacy: https://github.com/codacy/codacy-coverage-reporter/issues/506

Great. I've also tried uploading a Codacy-formatted JSON but wasn't successful. Otherwise, we could provide built-in Codacy report, just like Codecov.

I have just spotted another issue related with static initialization blocks. Might be it already got fixed in the commit you have push.

Yes. It should be fixed, see commit. A patch will be released, and I still have several other issues to solve together.

Here is v8 coverage. Look at calls count in the static block. 4358 initializations does not sound realistic, because there are only 331 test. Below you can find lcov generated by c8. Funny result for line 5, but otherwise 293 initializations is the number I would expect

c8 used v8-to-istanbul to convert the format to istanbul from V8, It's an excellent initiative to implement native V8 coverage reports. At the beginning, I also used v8-to-istanbul to implement the conversion. However, there are some issues that it seems unable to resolve. Because it just provide a simple conversion, not an accurate one. So I try to implement a better conversion which is analyzing the AST of the source code to achieve more accurate conversion. for example, excluding comments lines, blank lines and so on. see here for more history.
BTW, I have contributed MCR to c8 as an experimental feature, you can use it like below in the latest version.
c8 --experimental-monocart --reporter=v8 --reporter=console-details node foo.js

@mrazauskas  It should be fixed. Please try<EMAIL_ADDRESS>

Thanks. Yes, it works now. Closing this issue.
I hope to find some time to play with Codacy’s API today or tomorrow. Let’s see.
And thanks once again for creating this library!

Sorry, seems that I missed a question.
{
  "1": 1,
  "3": 1,
  "4": 293,  // correct
             // skipped line 5, so much correct!
  "6": 293,  // correct
  "7": 293,  // correct
  "8": 4358,  // hm.. and what is this?
  "9": "1/2",

For line 8, there are two parts:

Path.normalizeSlashes =  293 hits
(filePath) => filePath;  4358 hits

Currently, it take the maximum hits as the hits of the line. Does this make sense?

Ah.. That makes sense now. I thought function executions will be marked on line 4. If V8 reports these on line 8, that is perfectly fine.


Debounced doesn't work with objects

Describe the bug
In this example, debouncedCount will be updated immediately. I would expect it to be debounced.
<script>
  import { Debounced } from "runed"
  let countObj = $state({count: 0})
  const increment = () => {
    countObj.count += 1
  }

 let debouncedCount = new Debounced(() => countObj, 1000);

</script>

<button onclick={increment}>
  count is {countObj.count}
</button>

debouncedCount is
{debouncedCount.current.count}

Reproduction
https://stackblitz.com/edit/vitejs-vite-33c6zp?file=src%2Flib%2FCounter.svelte
Logs
No response
System Info
System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    runed: ^0.16.1 => 0.16.1
    svelte: ^5.3.1 => 5.4.0

Severity
annoyance

That's because the object is deeply reactive.
If you were to declare it as $state.raw() it should work, otherwise you should depend on obj.count 😁

Thanks for the explanaition.
This is my use case:
I have a rune that holds all my form data. I want to pass the data to a library to do an expensive calculation which shouldn't happen on every keystroke.
I was hoping there is already a primitve out there that lets me debounce an entire object but I couldn't find one.

Here's how you could accomplish it :) REPL

Thanks, this works. The only downside is that in this REPL the $effect runs twice in the beginning.


Suggestion Aspect Fit mode for Image

There is no option to make the image aspect fit or fill for the KCFButton which parent is UIView.
If you dont mind, this might be useful when autolayout is needed

Thank you for your suggestion. 😄


Implement clonePath, update source code sync location

What type of PR is this?
/kind feature
What does does this PR do / why we need it:
If a single project is present in devfile:

if project.clonePath is present sync to $PROJECTS_ROOT/clonePath
if clonePath not set sync to $PROJECTS_ROOT/projectName

if no project or multiple project present in devfile

sync to $PROJECTS_ROOT

The value of $PROJECTS_ROOT is determined by sourceMapping field in devfile or PROJECTS_ROOT env variable. if both are unset default is /projects.
Which issue(s) this PR fixes:
Fixes #3729
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

[ ] I have read the test guidelines

How to test changes / Special notes to the reviewer:

create nodejs component from file https://github.com/openshift/odo/pull/3907/files#diff-233e1a3be07da905fb5e3d944f1e3398
verify the source code sync location with kubectl exec -it <pod-name>  -- ls  $PROJECTS_ROOT/<clonePathValue>

@adisky Do we plan on supporting devfiles where multiple projects have clonePath set at some point? My concern is that we'll close out https://github.com/openshift/odo/issues/3729 with this PR, but we still won't support that scenario.

/approve

Tests are failing because of the registry changes
[odo] I0909 16:09:08.713048    7408 helper.go:36] devfile apiVersion '2.0.0' is supported in odo
[odo]  ✗  invalid devfile schema. errors :
[odo] - commands.0: Additional property id is not allowed
[odo] - commands.0.exec: id is required
[odo] - commands.1: Additional property id is not allowed
[odo] - commands.1.exec: id is required
[odo] - commands.2: Additional property id is not allowed
[odo] - commands.2.exec: id is required
[odo] - commands.3: Additional property id is not allowed
[odo] - commands.3.exec: id is required
[odo] - components.0: Additional property name is not allowed
[odo] - components.0.container: name is required

/hold

https://github.com/openshift/odo/pull/3872 now merged, so removing the hold
/hold cancel

Okay, so this is my bad, I didn’t realize this PR also added a test devfile for the integration test.
@adisky can you update your PR to use the new devfile format in the integration test that you’re adding, since #3872 was merged? Looks like the tests will still fail until it’s updated.
/hold

/hold cancel

/retest

Container test exited with code 1, reason Error
---
[must-gather      ] OUT Get https://api.ci-op-wk349ril-2f74e.origin-ci-int-aws.dev.rhcloud.com:6443/apis/image.openshift.io/v1/namespaces/openshift/imagestreams/must-gather: dial tcp <IP_ADDRESS>:6443: connect: connection refused
[must-gather      ] OUT
[must-gather      ] OUT Using must-gather plugin-in image: quay.io/openshift/origin-must-gather:latest
The connection to the server api.ci-op-wk349ril-2f74e.origin-ci-int-aws.dev.rhcloud.com:6443 was refused - did you specify the right host or port?
error: failed to execute wrapped command: exit status 1

/retest


fix missing zero in one day cache number

86400000 milliseconds is 1 day
https://www.google.com.au/search?q=86400000+milliseconds+to+days&spell=1&sa=X&ved=0ahUKEwiTmITf1Z7VAhXMpJQKHUojDWwQvwUIIygA&biw=1440&bih=776

Thank you! But the MDN documentation states that it should be seconds.

I know the Cache-Control HTTP header is in seconds, but this is a send options object, which is in milliseconds. Right now it's missing a single zero, so it equates to 2.4 hours, and your API is saying it should be 24 hours.

Oh,

Released!

cool thanks


cargo-cache: 0.6.1 -> 0.6.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/cargo-cache/versions.
meta.description for cargo-cache is: "Manage cargo cache (${CARGO_HOME}, ~/.cargo/), print sizes of dirs and remove dirs selectively"
meta.homepage for cargo-cache is: "https://github.com/matthiaskrgr/cargo-cache"
meta.changelog for cargo-cache is: ""
Updates performed

Rust version update

To inspect upstream changes

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

/nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2/bin/cargo-cache passed the binary check.

1 of 1 passed binary check by having a zero exit code.

1 of 1 passed binary check by having the new version present in output.

found 0.6.2 with grep in /nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2

found 0.6.2 in filename of file in /nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2

directory tree listing: https://gist.github.com/54ffe2fa0f8084c2c67ffde5c4cb3dd9

du listing: https://gist.github.com/835e64272444022b8b4a3f069f881346

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
1 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
cargo-cache

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A cargo-cache https://github.com/r-ryantm/nixpkgs/archive/13300901559f0bd655ce4b942f998a242bed1bfb.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2
ls -la /nix/store/xqrdf2zz2ad332skaav74jcryrx3q2s7-cargo-cache-0.6.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

cargo-cache

Maintainer pings
cc @Br1ght0ne for testing.

Result of nixpkgs-review pr 123346 at 13300901 run on x86_64-linux 1

1 package built successfully:

cargo-cache

1 suggestion:

error: no-flags-array
checkFlagsArray is only intended to be used in Bash, not as a Nix attribute.
Near pkgs/development/tools/rust/cargo-cache/default.nix:18:3:
   |
18 |   checkFlagsArray = [ "offline_tests" ];
   |   ^


Add custom serialization to ClusterBenchmark

Make sure the cluster benchmark works correct with custom serializers

Done, Json serialization is added


Prose typo

Need a space after the MM url https://github.com/smith-chem-wisc/MetaMorpheus/blob/b9b0116324e7280798944d9d6b34f5c943ed350c/TaskLayer/MetaMorpheusTask.cs#L475

Prose should also mention the original GPTMD paper for people who used GPTMD.
Prose should mention Spritz paper for proteogenomics stuff when we get that out. :)

Join the mass differences with ", " instead of "," including a space after comma

Instead of "non-decoy," probably just say "target," since the contaminants are also targets, technically.

I'd also recommend putting the modification in parentheses after each modification mass difference in the product mass tolerance list for GPTMD.


Email Validator using Python

This will be a script that takes input as an email address and checks whether the email address is valid or not.
It contains checking static email address format as well as smtp server checking.

Please assign this to me as a part of hacktoberfest event.


ja: Make docs/reference/access-authn-authz/authentication.md follow v1.19 of the original text

This is a Feature Request

What would you like to be added
Update docs/reference/access-authn-authz/authentication.md to follow v1.19 of the original (English) text.
Why is this needed
content/ja/docs/reference/access-authn-authz/authentication.md is outdated.
Comments
/language ja
/good-first-issue
File to update
https://github.com/kubernetes/website/tree/dev-1.19-ja.2/content/ja/docs/reference/access-authn-authz/authentication.md
Original
https://github.com/kubernetes/website/tree/release-1.19/content/en/docs/reference/access-authn-authz/authentication.md
diff between translated and v1.19
https://gist.github.com/18a9278caa84436a6ee82cc80f12c38f
Note
Currently, we use dev-1.19-ja.2 branch. Please open a PR targeting the branch.
ref
https://kubernetes.io/ja/docs/contribute/localization/
If you have a question, feel free to ask us at slack.k8s.io #kubernetes-docs-ja channel

/triage accepted

/assign

/close


Not able to see any screenshot in my PR and its showing some error too

this my yaml file
name: puppeteer
env:
  GITHUB_TOKEN: ********
on:
  push:
    branches:
      - 'dev'
  pull_request:
    types : [labeled] #adding this as a workaround for  triggering action manually
    branches:
      - 'master'
jobs:
  create_release:
    name: Puppeteer Screenshot Action
    runs-on: ubuntu-latest
    steps:
      - name: Take photo of github.com
        uses<EMAIL_ADDRESS>        with:
          url: https://github.com
          width: 2540
          height: 1440
          fullPage: true

@muhameddelic @lannonbr  @zrrrzzt please help here to resolve this

$GITHUB_WORKSPACE/screenshots/screenshot-${timestamp}.png there s no screenshot folder available in my repo
do we need to add this?


chore: add legal docs

PR to add legal documentation to newly created repository api-hub fulfilling https://eclipse-tractusx.github.io/docs/release/trg-7/trg-7-01.
Updates https://github.com/eclipse-tractusx/sig-infra/issues/376

LGTM, I guess the DEPENDENCIES does reflect the initial dependencies introduced with #1 ,
should be updated as soon as there is code


Implement OCFLPersistentStorageSessionManager.

Implement OCFLPersistentStorageSessionManager

JIRA Ticket: https://jira.duraspace.org/browse/FCREPO-3080

Other Relevant Links (Mailing list discussion, related pull requests, etc.)

What does this Pull Request do?
This PR builds on the minimal implementation of the OCFLPersistentStorageSessionFactory in the following ways:

Renames PersistentStorageSessionFactory to PersistentStorageSessionManager to reflect more accurately its function.   This class is responsible for accessing the state of the collection of persistent storage sessions and providing access to them.

Adds state to OCFLPersistentSessionManager to support a minimal
implementation.  Also adds check for null sessionId.

How should this be tested?
mvn clean install
Interested parties
@whikloj

If this a going to be a singleton class should it have a public constructor?

@whikloj :  If we let spring manage the creation of the  OCFLPersistentStorageSessionManager (as I believe we will since that would follow an established pattern it does need a public interface.


Time-Line Component

What is the motivation for adding/enhancing this feature?
This is will fully pledge UI build on the HTML and Tailwind as we have seen many developer used this component to show their progress journey track. So I thought to add this feature to your repo
Additional information
Please refer to this image this is something final thing will look like.

@Kumar-Ankit56 if you are not working on this, then I would like to work on this feature.

@Kumar-Ankit56 if you are not working on this, then I would like to work on this feature.

sorry to say buddy I'm on it.
You can try some different design of tailwind

@Kumar-Ankit56 if you are not working on this, then I would like to work on this feature.

sorry to say buddy I'm on it. You can try some different design of timeline

Ok, No problem.

Work on it. @Kumar-Ankit56  and add make a new folder called others and inside that just make a file called timeline-component.html and push the code. @Kumar-Ankit56

Work on it. @Kumar-Ankit56 and add make a new folder called others and inside that just make a file called timeline-component.html and push the code. @Kumar-Ankit56

sure


add a showed event

it is called after show and is super helpful for some visualizations, which
need a visible container to make a correct size computation. Like SVG/D3
implementations.

Many thanks for this. I've merged (with tests added). I renamed 'showed' to 'shown' as that seemed to be more grammatically correct. Hope that's not going to cause issues!

No really :). It`s from on naming convention for events, like "before,
during, after". No sure, in which language i picked that up.

show

showing

showed

delete

deleting

deleted

Anyways, cool. thank you for merging.
On Thu, Sep 22, 2016 at 2:52 AM, Matt Godbolt<EMAIL_ADDRESS>wrote:

Many thanks for this. I've merged (with tests added). I renamed 'showed'
to 'shown' as that seemed to be more grammatically correct. Hope that's not
going to cause issues!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/deepstreamIO/golden-layout/pull/124#issuecomment-248784065,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANprRqdIrXTXXD1E-b54muzAkgn3qeVJks5qsdEwgaJpZM4JihuL
.


Resize sidebar

Addresses https://github.com/mozilla/pdf.js/issues/2072.

/botio-linux preview

I like the direction of this patch and it already works quite well. Some comments from playing with this a bit:

Let's restrict the sidebar width to 50% of the total screen width. Now it's possible to even resize until beyond 100%, which should not happen. After more than 50%, the PDF file itself becomes too small, so I think 50% would be a good maximum value.

I think the timeout until the view re-renders after resizing is a bit too large, which makes the resizing feel slow. If you resize the sidebar quickly, the cursor can end up behind the page itself until it's re-rendered.

I addressed both of those issues.
But I noticed another problem.

toolbarViewerMiddle gets pushed off the toolbar when there's not enough space. What should we do about this?

In addition to https://github.com/mozilla/pdf.js/pull/8957#issuecomment-332336558, there's also a couple of other issues:

Most importantly, since it breaks things quite badly, is that if you resize the sidebar then the viewer will look completely broken after the sidebar has been closed.

I'm finding the code somewhat difficult to follow, and my worry is that this would be very hard to actually maintain in the future. Considering that the added JS code is making a lot of assumptions about the structure of the HTML/CSS, making any changes down the line there would thus be difficult.

(Presumably the reason why this functionality hasn't been implemented yet, is that the way e.g. the sidebar CSS is currently written makes this very difficult to fix in a good way.)

Are we OK with rewriting the sidebar CSS using flexbox? That should eliminate the need for hard coded width on every sub element of sidebarContainer.

Are we OK with rewriting the sidebar CSS using flexbox?

Maybe. But keep in mind old browser support, in worst case we need to gracefully degrade the functionality.
Is there a way to generate "global" CSS to override default size of the sidebar? And resizer may just "control" this CSS.
IMHO the sidebar shall not depend and control its parents; a resizer alone may notify (via dispatch event) that it's position changed and app will adjust its UI then.

Are we OK with rewriting the sidebar CSS using flexbox?

Considering that we've not yet officially rescinded support for older IE versions, that may not work too well; see e.g. the following compatibility data https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes#Browser_compatibility.
Also, looking again at the screen-shot in https://github.com/mozilla/pdf.js/pull/8957#issuecomment-332390324,  I do wonder if we'd need to try and reach consensus on and implement #4052 first. Otherwise I'm not sure how you'd ever be able to dynamically update all of the media-queries involved!?

Are we OK with rewriting the sidebar CSS using flexbox?

It's probably about time we re-visit our supported browser/version. The can-i-use for flex box is around 97%.
FWIW: the original mock-up of the PDF viewer was done in flexbox and it was SO much cleaner than what we ended up with. Unfortunately, the site doesn't work any more http://people.mozilla.org/~shorlander/mockups/PDF.js/PDFjs-Tour-01/index.html

Shorlander moved the original mock http://design.firefox.com/people/shorlander/pdfjs/prototype/pdfjs-ui-demo-i01.html

I noticed some weirdness in the code, the naming here is pretty confusing, should we fix this?
https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L60

/botio-linux preview

Closing since this is superseded by #9026. This solution is a bit more complicated than that one. Nevertheless, thank you for working on this as it provided us with ideas on how to improve the current situation and implement this feature more quickly!


pls add fundamentals downloading

Is your feature request related to a problem? Please describe.
can you add fundamentals downloading
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
https://findl.com/free-data
Fundamentals
Corporate Actions
S&P500 Constituents
Daily Metrics
Equity Prices
Fund Prices
Price Based Metrics
Tickers and Metadata
Insiders
Institutional Investors
Institutional Investors (by Investor)
Institutional Investors (by Ticker)

I meant historical fundamentals  for last 5 years


Nuget package binaries no longer signed?

Describe the bug and how to reproduce
When downloading the latest (as of this writing) 3.4.10 nuget package for Vanara.Core or Vanara.Pinvoke* packages, I'm seeing that none of the binaries are signed.
What code is involved
N/A
Expected behavior
I was expecting the binaries to be signed, based off of this code check-in message:

But I'm not seeing any digital signatures when I open the properties of the dll's.
Screenshots

This might be a potential security vulnerability if these libraries are used in other applications. Has this always been the case that these binaries are not signed, or was this working at one point in time?

It appears you are correct. I'll get it resolved.

I have sample tested a number of the assemblies in the build with the "sn.exe" tool and all of them show they are signed. I wonder if there is a problem with showing that tab in Explorer Properties under our versions of Windows.

@dahall
Perhaps I wasn't clear on my initial question. I was asking whether or not the Vanara dll's from the nuget package are digitally signed, not whether they are strongly named.
Most resources I've found online say to check the Properties page like I had done, or use the 'signtool.exe' from Visual Studio to check if binaries are digitally signed:
Link: scroll down to the part where it says 'Strong Names and Digital Signatures are Orthogonal Concerns'
Here's what I get when I run 'signtool.exe' from a VS command prompt:

So again my apologies if I was unclear. Have the nuget packages ever been digitally signed, as opposed to just strongly named?
Best regards,
Tam

No. Just strongly named.


HTTP/2 Server Push breaks with Gzip

Seems like the Gzip writer and http response writer composition doesn't implement http.Pusher in current form.

#45 fixes this.


Flatabulous-wal GTK theme not working

I couldn't find the option to open an issue on the Flatabulous-wal repo so I opened an issue here. Hope that's fine.
Here is a screenshot of my directory structure and lxappearnace:

What could be wrong here?

Run lxappearence > wal-log, set the theme in LXAppearence and paste the contents of that file here.
LXAppearence is saying that it can't find the wal export file.

I got it to work.
I just hadn't updated pywal. Can't believe I made this mistake.
Sorry

All good, I'll add a note to the wiki about this. :)


Upgrade Next.js, EDS, React and TypeScript packages

We're currently running Next.js version 12, which should be upgraded to version 13.
Here is a guide: Upgrading from 12 to 13

Next version 14 has released since this issue was created so we will be upgrading to 14, as discussed.

Upgrading to React 18.2.0 is recommended as part of this process.
Upgrading TypeScript to 5.3.3 is recommended as a part of the React upgrade.
The TypeScript upgrade causes errors in our current EDS packages so I will also upgrade this to 0.35.1, which is long overdue anyways.

@SayyareHamit This is ready for test in https://test.flyt.equinor.com/
This upgrade affects a lot of parts of the web app. The whole app should be tested, but pay close attention to buttons that redirects the user and input fields.
We have migrated to a newer version of EDS so some things will have different styling, like the line under the search bar on the front page. Feel free to ask if you don't know if it's a bug or new EDS styling 👍

Works good in Test. @nesadrian 🐱💻


Doesn't work with ES6 modules

Installed this package to try it (as discord is badly in need of equal sized buttons), but it will not import the modules. I receive the below error:
import { getStringWidth, padStringToWidth } from 'discord-button-width';
         ^^^^^^^^^^^^^^
SyntaxError: Named export 'getStringWidth' not found. The requested module 'discord-button-width' is a CommonJS module, which may not support all module.exports as named exports.

I do not want to use CommonJS, so hopefully I'm just doing something wrong, and your code does support ES6 modules :)
Using discord.js v14 code, in case that matters.

This should be fixed in v1.1.1


random small changes

Description of Your Pull Request
What does your pull request specifically does by adding/modifying or removing code?
Changes Proposed and or Files Changed

Example Change

Label Your Pull Request

[ ] This PR modifies existing code to enhance the bot
[ ] This PR fixes a bug within the bot
[ ] This PR removes/renames methods or properties
[ ] This PR adds methods, features, commands or properties

I can not really check for any attachments, what if they are not images but MP3, MP4, etc, they'll still go through the .setImage(image) part and error out, hence it won't make sense.

no it wont


Screenshot is completely broken

The screenshot taken by the example (full screen) is completly broken:

use image::RgbaImage;
use win_screenshot::prelude::*;

fn main() {
    let buf = capture_display().unwrap();
    let img = RgbaImage::from_raw(buf.width, buf.height, buf.pixels).unwrap();
    img.save("screenshot.jpg").unwrap();
}

Is it because I cross-compile on ubuntu linux using cargo build --target x86_64-pc-windows-gnu?
I executed the complied example on a virtual (qemu/kvm) win10 machine.

It seems to be a problem with the jpeg encoder. Saving as png works just fine.

Hello. Ty for issue investigation.
Related https://github.com/image-rs/image/issues/2188


Add a ButtonEmbedPaginator with support for Discord buttons

This PR adds a new ButtonEmbedPaginator, which is essentially a fork of the EmbedPaginator that was added by Andre_601.
This paginator does not support pagination via text, you must use buttons.
Goals:

To provide a simple paginator that support Discord's buttons
Add an easy way to move over from EmbedPaginator to ButtonEmbedPaginator
Close #2

Non-goals:

It is not a goal to undermine the work in #32
Replace EmbedPaginator or other paginator options

This is merely a new paginator option for people who want buttons!

@RoryHelper approve


DllNotFoundException: security.dll

Hi,
When I tried to access Analysis Services on Centos, I encountered DllNotFoundException: security.dll exception.
And copying this dll from Windows also doesn't work.
from sys import path
path.append('/usr/local/bin/') # which is dll files path

import pandas as pd
from pyadomd import Pyadomd

conn_str = "Provider=MSOLAP;DataSource=xxx.xxx;Catalog=xx;Integrated Security=SSPI;Persist Security Info=True;User ID=xxx;Password=***;"
query = '''

MDX Scripts...

'''

with Pyadomd(conn_str) as conn:
    with conn.cursor().execute(query) as cur:
        df = pd.DataFrame(cur.fetchone(),
                          columns=[i.name for i in cur.description])

Do you have any ideas?

Which operating system and python version are you using?
At which line do you get the exception?
•	When you import the Pyadomd package?
•	When you querying the Analysis Service Cube?

Hi,
I think I know what I'm doing, and I've also tried to use pythonnet directly, as well as installing .net runtime.
The system version is Centos 7 and python is 3.7. But I don't think this is a problem specific to a particular version.
It looks like my Centos are missing a series of components from Windows security validation, but I don't know how to import, copying DLLs directly from Windows doesn't work, and I can't find similar issues on sites like StackOverFlow, so I'd like to ask if you've studied this.

I’ve only tested it on windows.
My plan is to test if I can get to work on UNIX-like system by using Mono https://www.mono-project.com/ but I haven’t got to it yet. Pythonnet should work with the Mono runtime, so hopefully it could also be possible to get Pyadomd to do so.

Thank  you very much, I don't know much about C#.
I've seen Mono run as a dependency library, just I'm stuck in Windows authentication.
I hope your plan will succeed.