Dask-XGBoost non-deterministic results

I have been trying to train XGBoost on multi-gpu via Dask. It is required that the training pipeline be made deterministic (for example for comparing Hyperparameter runs), exactly the same results from loading the same data and training on the same number/type of GPUs. So far, with the following code I can generate reproducible results on 1 or 2 GPUs by manually assigning dask partitions to workers. However, going to 3 or more GPUs results in non-determinism.
GPU: V100-32GB GPUs, DGX server
Container: rapidsai/rapidsai:22.04-cuda11.0-runtime-ubuntu20.04-py3.8
Data: Higgs dataset
$> wget https://archive.ics.uci.edu/ml/machine-learning-databases/00280/HIGGS.csv.gz
$> gzip -d HIGGS.csv.gz

Code:
import os
os.environ["DASK_DISTRIBUTED__SCHEDULER__WORK_STEALING"]="False" # needs to be added to dask-scheduler

from dask_cuda import LocalCUDACluster
from dask.distributed import Client, wait
from dask import delayed
import dask_cudf
import cudf
import distributed
import xgboost as xgb
import time
from dask.utils import stringify

from sklearn.metrics import mean_absolute_error

cluster = LocalCUDACluster()
client = Client(cluster)

def prepare_data(gpu_dataframes):
    """
    Convert a list of arrow tables to a single GPU dataframe

    Returns
    -------
    GPU Dataframe
    """
    import cudf
    concat_df = cudf.concat(gpu_dataframes)
    del gpu_dataframes
    return concat_df

def reproducible_persist_per_worker(df, client):
    ### Assume equal partitions (please edit accrodingly if non equal partitions)
    workers = list(client.has_what().keys())
    num_workers = len(workers)
    parts_per_worker = (df.npartitions+num_workers-1)//num_workers

    start_p = 0
    persist_ls = []
    for w in workers:
        end_p = min(start_p+parts_per_worker, df.npartitions)
        subset_delayed = delayed(prepare_data)(df.partitions[start_p:end_p].to_delayed())
        persist_ls.append(client.persist(subset_delayed, workers=w, allow_other_workers=False))
        del subset_delayed
        start_p = end_p

    _ = wait(persist_ls)
    del _ ;

    persist_df = dask_cudf.from_delayed(persist_ls).persist()
    _ = wait(persist_df);
    del _
    return persist_df

fname = 'HIGGS.csv'
colnames = ['label'] + ['feature-%02d' % i for i in range(1, 29)]
df = dask_cudf.read_csv(fname, header=None, names=colnames)
persisted_df = reproducible_persist_per_worker(df,client)

dmatrix = xgb.dask.DaskDeviceQuantileDMatrix(client=client,
                               data=persisted_df[persisted_df.columns.difference(['label'])],
                               label=persisted_df['label'])

model = xgb.dask.train(client,
                       {'verbosity': 2,
                        'tree_method': 'gpu_hist',
                       'seed': 123},
                       dtrain=dmatrix,
                       num_boost_round=3000,
                       evals=[(dmatrix,'dtrain')])

print("Final train loss: ",model['history']['dtrain']['rmse'][-1])

y_pred = xgb.dask.predict(client, model, persisted_df[persisted_df.columns.difference(['label'])]).to_frame().compute()
y_pred = y_pred.rename({0:'score'},axis=1)

After running the above, you can see the final training loss. The first time simply save the scoring results to parquet:
y_pred.to_parquet("last_run.parquet")

Then rerun the main code. Compare the training losses, and use the following code to read the last_run.parquet results and compare the average difference (which if deterministic should be 0.0)
last_pred = cudf.read_parquet("last_run.parquet")
sub=(y_pred-last_pred).abs()
print('Average percentage difference: ', sub.mean()/y_pred.mean())

This issue is not exclusive to training using GPUs.  While the example above uses cudf and GPUs to train, I have been able to reproduce this issue when training without GPUs.

I reproduce it with 2 workers. The partitioning is not deterministic.

I'm afraid xgboost-dask cannot be fully deterministic until the dask data partitioning is deterministic.

@trivialfis The example provided by @dawilliams-nvidia attempts to make the data partitioning deterministic.  When the file is read, the first part of the data is placed on worker 0, the next part of worker 1, ect.  Work stealing is also disabled, so the data will remain on the worker it is assigned.

I'm afraid xgboost-dask cannot be fully deterministic until the dask data partitioning is deterministic.

This is true, but it is not sufficient for xgboost-dask to be fully deterministic.  This issue is identifying an additional requirement for xgboost-dask to be fully deterministic.
When I have tried to replicate the issue above, if data partitioning is not deterministic you will have issues with reproducibility with 2 workers.  If data partitioning is deterministic, you will only start seeing issue if the number of workers is 3 or more.

@Robert-Christensen-visa Thank you for the explanation. I tested the sample and saved the data for each worker, then compare the sha256sum for each run. The data partitioning is still not deterministic in the example.

@trivialfis Would you share the code that you used to compare the sha256sum?

Possibly related ( https://github.com/dask/dask/issues/9135 )

@mmccarty I did a quick hack inside XGBoost to save the binary before constructing DMatrix (along with DMatrix itself). https://github.com/dmlc/xgboost/blob/1ced6381653eed0f259cf11df8ef599274d84174/python-package/xgboost/dask.py#L810

So poked around at the code above and cleaned up a bit. Here's the notebook. Rewrote the reproducible_persist_per_worker function.
Looking at the data as loaded by Dask it appears the same data is in each worker to start before going to XGBoost. Checked this by writing out the data after persisting and comparing that over several runs (restarting the cluster and reloading the data each time). The data in each part was identical. Compared this by loading each part file with PyArrow and comparing their contents.
That said, still see different results from XGBoost's prediction. Given this am wondering if there might be something in the Dask code in XGBoost that merits further exploration.
As a side note checksumming the parquet files themselves appears to show differences even when writing the exact same data out. Not as familiar with the Parquet format as others, but my guess (having seen similar issues with other formats like tar) is there are metadata differences (maybe timestamps?) that vary. So not confident checksumming is a reliable strategy for validating files are the same. Would suggest sticking to content comparison over using checksums.


EC2 non-Docker deployment using 'nightly' Impostor build

We'll still need to figure out the config.json if this is going to run with a cert behind a load balancer. I don't have a way to test that currently since I'm using my home vSphere cluster.

Oh wow, I didn't realize that closing the parent branch auto closed this one :(

Should I create a new branch, or do you want me to just redo the PR and point it to "main"?

new PR point it to main please.


view doesn't update after model update

Vue.js version
1.0.18~1.0.24
Reproduction Link

1.0.18
1.0.17
Steps to reproduce
step1: check the first checkbox  in left table
step2: check the first  checkbox in right table
What is Expected?
I expect it generate the same result of the two version and after I check the first check box on the right table,all the checkbox bellow are checked.
What is actually happening?
It generates different results of the two version. I try version between 1.0.18~1.0.24,after I check the first checkbox on the right  ,all the checkbox bellow  are not checked,which is not what I expect.

Your selectedRows is a computed property, so manual changes to it are ignored.

This is not a bug, you mapped your array to different objects in the computed property, mutating these derived objects will not cause any changes because they are "temporary" and will be lost whenever your source data changes.


Expose row/column position of nodes to custom renderers

I'm currently using v2.5.1, and I have a custom renderer for Item nodes (now listItem in v3) that detects "checkboxes" and renders a checkbox input with an onChange to toggle the x on/off in the source of the markdown text and saves it.
I accomplished this using the nodeKey prop which I noticed was made up of the row/column position of the node, so I knew exactly where in the source text I had toggle the x.
I was happy when I saw that v3 supports checkboxes itself, but then realized I no longer seem to have any way to know where that node is in relation to the whole source. The only 3 props given to listItem are checked, children, and tight.
Is there a way to access the position of the node?

Ugh, I kept looking for nodeKey and position. Just saw the sourcePos property. Sorry! 😅


Feature/tabs in modals

Modals could show only one metadata source at a time. There were some cases (i.e country GHG emissions) where we needed to display two different sources in tabs with a custom title.

[x] Add tabs to the modal header
[x] Add custom title to tab provided as a param to setModalMetadataParams

Some working info modals: country GHG emissions, GHG emissions page

Good catch! Fixed

Ready! Thanks

Looks good to me. @j8seangel can you confirm the last changes?

Great stuff.


Incorrect merging of conflicting argument values

With the following config file at /Users/<username>/Library/Application\ Support/tex-fmt/tex-fmt.toml:
# Cyprien's tex-fmt.toml
check = false
print = false
wrap = true
wraplen = 120
tabsize = 2
tabchar = "space"
stdin = false
verbosity = "info"

running tex-fit --args from ~/ yields the following output:
tex-fmt
  check:       false
  print:       false
  wrap:        true
  wraplen:     80
  wrapmin:     70
  tabsize:     2
  tabchar:     space
  stdin:       false
  config:      /Users/<username>/Library/Application Support/tex-fmt/tex-fmt.toml
  verbosity:   warn

This shows that the configuration file is correctly picked up from the default macOS location, but the merge resolution of 120 with 80 yields the default value of 80 rather than the expected 120. Similarly, the merge resolution of info with warn yields the default of warn rather than the expected info.

Thanks for letting me know, I'll try to look into this soon.

Should be fixed in fcc4545ecbe3192b7cb3dbaa0bfc2fd2e8b72c91. The issue was using default values in clap takes precedence over struct merging.

Thanks for taking the time! After installing with cargo from fcc4545, I get the following output:
❯ tex-fmt --args
tex-fmt
  check:       false
  print:       false
  wrap:        true
  wraplen:     120
  wrapmin:     110
  tabsize:     2
  tabchar:     space
  stdin:       false
  config:      /Users/username/Library/Application Support/tex-fmt/tex-fmt.toml
  verbosity:   warn

~
❯ cat /Users/username/Library/Application\ Support/tex-fmt/tex-fmt.toml
# Cyprien's tex-fmt.toml
check = false
print = false
wrap = true
wraplen = 120
tabsize = 2
tabchar = "space"
stdin = false
verbosity = "info"

I see that the wraplen argument is correctly merged, but not the verbosity one.

This should be fixed in 910db8f3be8794e5c547cd7d184cf8104c5081a5. The problem was I had not implemented verbosity = "info", and was instead expecting verbosity = "verbose". Now either of these should work.


bs-platform: 7.3.1 -> 7.3.2

Motivation for this change
Things done

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

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

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

Result of nixpkgs-review pr 87862 1

1 package built:
- bs-platform


[Question] Server update strategies - best-effort

Hi,
I have a quick question regarding the update strategy :
I have 2 servers in my fleet : Server A and Server B
Each of them runs 1 service : Service 1
When A decides to reboot using the best-effort strategy, it takes the lock and reboot, then service 1 needs to start. Does A unlock the lock only when service 1 (which is registered in systemd) is 'started' or is it possible that Server B reboot while Service 1 is still trying to start (it can take a while to docker pull the image or the start could fail for whatever reason) ?
Do we have any control on that ?
Thanks

This issue was moved to coreos/bugs#257


Fix issue where buildpack uris are treated like ids

Signed-off-by: Emily Casey<EMAIL_ADDRESS>Signed-off-by: Javier Romero<EMAIL_ADDRESS>

Resolves #245


Disable compilation from jax.lax.(cond, while_loop, fori_loop)?

As I understand it, code underneath one of these jax.lax control flow constructs will be JIT compiled regardless of whether there is a jax.jit used. This is a bit annoying when I am running unit tests because our compilation times inflate the test runtime dramatically.
Any advice would be appreciated!

Thanks for the suggestion!
Instead of compiling these higher-order primitives, we could effectively run a Python-level jaxpr interpreter. Then there wouldn't be compile times, but there would be high Python overheads. I wonder if that would be a better tradeoff, at least in some cases.
Luckily I think you can experiment with that behavior now by using jax.disable_jit. In fact, I think you can do nojit_cond = jax.disable_jit()(jax.lax.cond) and similar.
WDYT about trying that use of jax.disable_jit to see if it helps?

Here are some examples of the relevant logic:

scan
cond
while_loop

It would be ideal if we didn't have to change our codebase just for test code. But looking at the examples you listed, there seems to be a more non-invasive strategy:
### test.py
from jax.config import config
config.update('jax_disable_jit', True)

# import codebase

# test code ...

config.update('jax_disable_jit', False)

Would this work?

Thanks @mattjj and @JamesYang007. Between these two solutions, I think we're all set! I've gotten the particular unit test I was looking at down from 32s to 1.2s which is great. Thanks!!

You can also put that kind of thing in setUp / tearDown methods on your test classes or modules. Those can be more robust to e.g. exceptions being raised in tests. (That is, if a test fails with an exception, you may want to clean up any changes to the global state as it exits.)

Would setUp/tearDown be more robust to exceptions than wrapping the test in the jax.disable_jit context manager like this?
def test_f():
    with jax.disable_jit():
        f()

or, possibly better and works great because disable_jit is written using @contextmanager.
@jax.disable_jit
def test_f():
    f()

I think that will work well too! Our config context managers attempt to be robust to exceptions by using try/finally, and putting the clean up under the finally.


Prototype

This uses code originally developed in https://github.com/everypolitician-scrapers/guernsey-2016/pull/1 and https://github.com/everypolitician-scrapers/mongolia-khurai-wp-multiple-terms/pull/7 to give us a first version of the gem. Those two pull requests have also been updated to use the code in this pull request to demonstrate it working in a real world setting.
Notes to reviewer
I would like to strap some automated tests onto this prototype ASAP, but I think there's value in releasing this version as v0.1.0 and then iterating on the library from there.
Notes to merger

[x] This should not be merged until scraped_page_archive v0.5.0 has been released. See https://github.com/everypolitician/scraped_page_archive/pull/55.

The Travis tests are failing because it needs https://github.com/everypolitician/scraped_page_archive/pull/55 to be merged and v0.5.0 of scraped_page_archive to be released first.

@tmtmtmtm :eyes:

I think this one also falls into the territory of really wanting https://github.com/bbatsov/ruby-style-guide#one-class-per-file

Yep, it was useful having it in one file when I was copying it between scrapers to test it, but no need for that now its in the gem. I've split them up in https://github.com/everypolitician/scraped_page/pull/7/commits/39f2de9f021d123361cfe89cdff2bd7ef5a02cfe.

@tmtmtmtm 👀


Generate server certificate in an init container

I added a simple init container to VK that generates a server certificate for serving the API. Unfortunately, we have to jump through a few extra hoops (approving the CSR ourselves) since VK uses its own service account for interacting with the control plane.
I made sure the certificate is only generated if it's missing or invalid.

This fixes #70


Tweaks post accordion updates

Tweak alignment of accordion title to more closely match spec

Before (note alignment of title to NHS box)

After

Remove references to country_section content from
CoronavirusLandingPagePresenter as we are now pulling country specific
content from additional_country_guidance instead (see #1697)

https://trello.com/c/WyQxHLMh

Looks good. Maybe would be cleaner to have the two changes in separate commits, but fine as it is.

@andysellick thank you for approving this, and regarding your comment – that's a good point.
I broke the changes up into two separate commits


Offset and limit ignored in subquery

When I use subquery, offset and limit arent in generated sql (postgresql):
Original query:
SELECT * FROM tag WHERE id IN (
    SELECT tag_id FROM (
        SELECT * FROM view LIMIT :limit OFFSET :offset
    ) AS cluster
    GROUP BY tag_id
    ORDER BY COUNT(*)
 )
LIMIT :limit_per

PHP code:
$querySlice = (new Query)->select('*')
    ->from('view')
    ->limit($cluster_size)
    ->offset($i);

$topOfSlice = (new Query)->select('tag_id')
    ->from(['cluster' => $querySlice])
    ->groupBy('tag_id')
    ->orderBy(new Expression('COUNT(*)'));

$tags = Tag::find()
    ->where(['id' => $topOfSlice])
    ->limit($per_cluster_top)
    ->all();

Generated query from debugger:
SELECT * FROM "tag" WHERE "id" IN (
    SELECT "tag_id" FROM (
        SELECT * FROM "view"
    ) "cluster"
    GROUP BY "tag_id"
    ORDER BY COUNT(*)
)
LIMIT 10

Limit not working if I set it as string because hasLimit and hasOffset function in QueryBuilder

So it's related to or duplicate of #7023?

But it should work with strings, there's an explicit condition for it.

Yes i found it now

Shouldnt by better if it accept anithing convertable to unsigned integere ?

closed as duplicate of #7023


Gprbuild output

Compiling the Rust file with and Ada library that does not compile will now fail with an error message from gprbuild.
For example I added the world "astrocat" without semicolon inside ada_hello.adb:
LD_LIBRARY_PATH=ada_hello/lib cargo run
Compiling gpr v0.1.0 (/workspaces/ada_rust_programs/gpr-rust)
Compiling ada_hello v0.1.0 (/workspaces/ada_rust_programs/gpr-rust/examples/ada_hello)
error: failed to run custom build command for ada_hello v0.1.0 (/workspaces/ada_rust_programs/gpr-rust/examples/ada_hello)
Caused by:
process didn't exit successfully: /workspaces/ada_rust_programs/gpr-rust/examples/ada_hello/target/debug/build/ada_hello-d322c83e3a3d974b/build-script-build (exit status: 101)
--- stderr
ada_hello.adb:9:04: error: "astrocat" is undefined
ada_hello.adb:9:12: error: missing ";"
gprbuild: *** compilation phase failed
thread 'main' panicked at 'explicit panic', build.rs:16:9
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Thank you very much!


Fixed mount point for container directory in docker run ... for linux…

… I updated the README adding the mount point for the docker directory.

Good catch! Thanks @stanlee321 .


Require Ansible version in sample playbook

Lays the groundwork for #806 and implements changes discussed there.

$ ansible --version
ansible <IP_ADDRESS>
$ ansible-playbook terraform.sample.yml
PLAY ***************************************************************************

TASK [check for security] ******************************************************
skipping: [localhost]

TASK [check for compatible Ansible version] ************************************
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "Your version of Ansible doesn't match the required version. Please\ninstall ansible-playbook with `pip install -r requirements.txt`.\n"}

PLAY RECAP *********************************************************************
localhost                  : ok=0    changed=0    unreachable=0    failed=1


adds new deps.

Is this ready for merge @mfaghihi ? We'll need a Pr updating the branches to versions also once this is merged since it points to a git branch.


Remove use of custom isequal to compare scenarios

DIT source

Implement == between Scenarios
Disallow passing custom isequal to check that scenarios have been preserved

DIT extensions and tests

Remove Flux- and Lux-specific isequal functions

Codecov Report
Attention: Patch coverage is 0% with 23 lines in your changes missing coverage. Please review.

Project coverage is 0.14%. Comparing base (ee11b70) to head (1562b59).
Report is 2 commits behind head on main.

Files with missing lines
Patch %
Lines

...tiationInterfaceTest/src/tests/correctness_eval.jl
0.00%
12 Missing :warning:

...erentiationInterfaceTest/src/scenarios/scenario.jl
0.00%
10 Missing :warning:

...entiationInterfaceTest/src/test_differentiation.jl
0.00%
1 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (ee11b70) and HEAD (1562b59). Click for more details.
HEAD has 56 uploads less than BASE

Flag
BASE (ee11b70)
HEAD (1562b59)

DI
47
0

DIT
10
1

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #486       +/-   ##
==========================================
- Coverage   98.51%   0.14%   -98.37%
==========================================
  Files         107      19       -88
  Lines        4298    1393     -2905
==========================================
- Hits         4234       2     -4232
- Misses         64    1391     +1327

Flag
Coverage Δ

DI
?

DIT
0.14% <0.00%> (-98.23%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


remove broken/unsupported rapids_cpm_find usages in favor of rapids_find_package

By using rapids_cpm_find we're implicitly stating that we support download and building packages. Excluding the CPM arguments from the call doesn't make it any better, since the error message produced by rapids_cpm_find when it does not find the package installed indicates that the CPM arguments should be added. In short, rapids_cpm_find doesn't do us any favors if we don't support downloading and building the package from source. Instead it just acts as a confusing wrapper around find_package. This PR replaces rapids_cpm_find  with rapids_find_package and removes the broken build code for cudf, ucx, and boost.
If/when we decide to support building these packages from source, we can revisit rapids_cpm_find, but for now we require installing the packages ahead of time (this hasn't changed).

@drobison00 the error produced by find_package is very informative for anyone who's used to cmake and understands where/how packages should be installed (conda).
CMake Error at external/utilities/cmake/morpheus_utils/package_config/ucx/Configure_ucx.cmake:25 (find_package):
  By not providing "Finducx.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "ucx", but
  CMake did not find one.

  Could not find a package configuration file provided by "ucx" (requested
  version 1.13) with any of the following names:

    ucxConfig.cmake
    ucx-config.cmake

  Add the installation prefix of "ucx" to CMAKE_PREFIX_PATH or set "ucx_DIR"
  to a directory containing one of the above files.  If "ucx" provides a
  separate development package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  cmake/dependencies.cmake:39 (morpheus_utils_configure_ucx)
  CMakeLists.txt:135 (include)

Still need to test this with Morpheus now that the utilities changes have been merged there.

I've kept the old code as a comment, per @mdemoret-nv 's request, and used rapids_find_package instead of find_package so we have proper export sets.

tested with Morpheus and it works. Need to update one line in MRC to get this working, since I renamed the boost configuration function.

@drobison00 I don't have permissions to change labels, but because of the boost configuration function rename this is a breaking change now.

/merge

/merge


Notice: Undefined index: activated_status

http://www.elkarte.net/community/index.php?action=admin;area=viewmembers;sa=approve;type=activate

Notice: Undefined index: activated_status
File: sources/subs/Members.subs.php
Line: 2010

Likely related to #3003 and #3004

Fixed in 2b8717894ef9d56ce6a8a60ea5152949ac64155c


Create SECURITY.md

Hey there,
As there isn't a SECURITY.md with an email on your repository, I am unsure how to contact you regarding a potential security issue.
Would you kindly add an e-mail or other contact method to this SECURITY.md? GitHub recommends this as the best way to ensure security issues are responsibly disclosed, and it would massively help security researchers get in touch next time.
Thank you!

Thanks!


numba stencil too slow

Feature request
Please add a nopython option to stencil. Using stencil alone has a huge (detrimental) performance impact.
Comparing a stencil "function" against its python counterpart, the performance penalty by using only the stencil decorator is around two orders of magnitude, meaning the stencil version is around 100x slower than pure python loop implementation (which is slow already).
I did a quick benchmark using a simple finite difference (derivative) example. It is available via this google colab link. It follows a minimal example below:
import numba as nb
import numpy as np

# independent variable array
x = np.linspace(0, 1, 2**11+1)

# dependent variable array: y = f(x)
y = 0.5*x**2

# mesh step size
h = x[1] - x[0]

def derivative_lst(y):
    dy = []
    for i in range(2, len(y)-2):
        dy.append(0.5*(y[i+1] - y[i-1])/h)
    return dy

@nb.stencil
def derivative_stencil(y):
      return 0.5*(y[+1] - y[-1])/h

@nb.njit
def derivative_stencil_njit(y):
    @nb.stencil
    def kernel(y):
        return 0.5*(y[+1] - y[-1])/h
    return kernel(y)

# slow version
dydx = derivative_stencil(y)

# much better performance
dydx = derivative_stencil_njit(y)

It would be nice to have a @numba.stencil(nopython=True) version in order to produce a performance result similar to the derivative_stencil_njit above without all the hassle of having a kernel inner function.  Something simple as this:
# proposal
@nb.stencil(nopython=True)
def derivative_stencil(y):
      return 0.5*(y[+1] - y[-1])/h

I believe that without this, numba stencil usage becomes too slow or too intricate. What do you think?

The reason of the significant slow down is that StencilFunc.__call__ is recompiling on every invocation and not caching the compiled result.

Thanks for pointing out the reason for the slowness. Unfortunately I am not the ideal person to make such a change/improvement, can anyone take over from here? IMHO, there is no point to use stencil without using cache or jit.


Missing endpoints for pool-incentives

Post-launch, we should make tests with more setup, so we can test the responses as well. Not super important prelaunch though


detect changes in the construction site.

Hi
We are taking pictures of the vehicles and comparing tham previously taken pictures. The pictures has not the same lighting and smal orientation difference.
How we can mark changes on the images . ?

Resemble.js is not the correct tool for comparing different photographs of the same object, it is for comparing static images (where they are suppose to be the same image)


Added add-on architecture diagram

 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.

 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.

And maybe add executeJS for server->client comms


Update app structure and build system for Android Studio

Android Studio is now the official Android IDE - time to upgrade our project!

Should be done as of #7!


EN language file updated

EN language file still used {currentDamage} instead of {currentMovingAvgDamage}

Maybe it also needs to be corrected in the RU language file

thx


limits.h in pg_query_deparse.c not necessary?

My quick experiment shows that removing the include for limits.h does not affect pg_query_deparse.c
Perhaps it can be removed? I can prepare PRs for every branch if necessary.

You might be right - the deparsing code went through a lot of iterations before the initial release, and that might be a leftover from a prior iteration.
FWIW, generally we focus on the latest branch and don't backpatch unless its something more severe (its overhead to stamp releases on the old branches, etc). So if you want to prepare a PR for 15-latest that would be ideal.


Automatically stop the simulator when a change is detected in Blockly

I find it hard to tell when the simulator has saved my latest change, compiled and is showing it.
It might be good to invalidate the simulator's run (ie: stop it), if we detect that the user has made a change. Once that change is compiled and ready to run, it can automatically run it.
Alternatively, we could add a status bar somewhere to indicate that we're re-compiling.

Currently, the behavior is to restart the simulator after a change has been made, with a small delay in case the user is still editing.  Re-compiling happens instantaneously.  We could pause and gray out the simulator when a change is detected, until the restart happens.

Turning to sepia while waiting for reload.

Fixed. Reopen if needed.


unable to load inception model. Or any other architect other than alexnet

import torchvision.models.inception
works fine
arch = torchMd.alexnet(pretrained=True)
gives error, also tried vgg, densenet
arch = torchMd.inception(pretrained=True)
AttributeError                            Traceback (most recent call last)
 in
----> 1 print(torchvision.version)
AttributeError: module 'torchvision' has no attribute 'version'

on trying inception_v3
arch = torchMd.inception_v3(pretrained=True)

RuntimeError                              Traceback (most recent call last)
 in
----> 1 arch = torchMd.inception_v3(pretrained=True)
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/inception.py in inception_v3(pretrained, **kwargs)
24         if 'transform_input' not in kwargs:
25             kwargs['transform_input'] = True
---> 26         model = Inception3(**kwargs)
27         model.load_state_dict(model_zoo.load_url(model_urls['inception_v3_google']))
28         return model
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/inception.py in init(self, num_classes, aux_logits, transform_input)
63                 X = stats.truncnorm(-2, 2, scale=stddev)
64                 values = torch.Tensor(X.rvs(m.weight.data.numel()))
---> 65                 m.weight.data.copy_(values)
66             elif isinstance(m, nn.BatchNorm2d):
67                 m.weight.data.fill_(1)
RuntimeError: The size of tensor a (3) must match the size of tensor b (864) at non-singleton dimension 3

Without any information about what versions you are using, it is hard to help you. Could you please paste the following snippet into your python console and post the output here:
import torch
print(torch.__version__)
import torchvision
print(torchvision.__version__)

1.3.1

AttributeError                            Traceback (most recent call last)
 in
2 print(torch.version)
3 import torchvision
----> 4 print(torchvision.version)
AttributeError: module 'torchvision' has no attribute 'version'
However, I have installed dependencies as recently as last week, so torchvision has to be latest
Further please find the exact code-lines which are giving me error
import torchvision.models as torchMd
######## Working fine. Even their other versions too like vgg11_bn, 16 etc, however vgg itself giving error.
densenet neither densenet nor densenet 161, 169, 201 working
#arch = torchMd.alexnet(pretrained=True)
#arch = torchMd.resnet101(pretrained=True)
#arch = torchMd.squeezenet1_0(pretrained=True)
#arch = torchMd.vgg11(pretrained=True)
these all are giving error mentioned below
#arch = torchMd.inception()
#arch = torchMd.densenet()
#arch = torchMd.densenet201()
#arch = torchMd.resnet(pretrained=True)
#arch = torchMd.squeezenet(pretrained=True)
#arch = torchMd.vgg(pretrained=True)
#arch = torchMd.densenet(pretrained=True)

TypeError                                 Traceback (most recent call last)
 in
10 #arch = torchMd.resnet(pretrained=True)
11 #arch = torchMd.squeezenet(pretrained=True)
---> 12 arch = torchMd.vgg(pretrained=True)
13 #arch = torchMd.densenet(pretrained=True)
TypeError: 'module' object is not callable
in case of densenet161, 169, 201 error message is as follows
arch = torchMd.densenet201()

KeyError                                  Traceback (most recent call last)
 in
12 #arch = torchMd.inception()
13 #arch = torchMd.densenet()
---> 14 arch = torchMd.densenet201()
15 #arch = torchMd.resnet(pretrained=True)
16 #arch = torchMd.squeezenet(pretrained=True)
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/densenet.py in densenet201(pretrained, **kwargs)
52     """
53     model = DenseNet(num_init_features=64, growth_rate=32, block_config=(6, 12, 48, 32),
---> 54                      **kwargs)
55     if pretrained:
56         model.load_state_dict(model_zoo.load_url(model_urls['densenet201']))
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/densenet.py in init(self, growth_rate, block_config, num_init_features, bn_size, drop_rate, num_classes)
140         for i, num_layers in enumerate(block_config):
141             block = _DenseBlock(num_layers=num_layers, num_input_features=num_features,
--> 142                                 bn_size=bn_size, growth_rate=growth_rate, drop_rate=drop_rate)
143             self.features.add_module('denseblock%d' % (i + 1), block)
144             num_features = num_features + num_layers * growth_rate
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/densenet.py in init(self, num_layers, num_input_features, bn_size, growth_rate, drop_rate)
96         super(_DenseBlock, self).init()
97         for i in range(num_layers):
---> 98             layer = _DenseLayer(num_input_features + i * growth_rate, growth_rate, bn_size, drop_rate)
99             self.add_module('denselayer%d' % (i + 1), layer)
100
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torchvision/models/densenet.py in init(self, num_input_features, growth_rate, bn_size, drop_rate)
75     def init(self, num_input_features, growth_rate, bn_size, drop_rate):
76         super(_DenseLayer, self).init()
---> 77         self.add_module('norm.1', nn.BatchNorm2d(num_input_features)),
78         self.add_module('relu.1', nn.ReLU(inplace=True)),
79         self.add_module('conv.1', nn.Conv2d(num_input_features, bn_size *
~/anaconda3/envs/fastai/lib/python3.6/site-packages/torch/nn/modules/module.py in add_module(self, name, module)
193             raise KeyError("attribute '{}' already exists".format(name))
194         elif '.' in name:
--> 195             raise KeyError("module name can't contain "."")
196         elif name == '':
197             raise KeyError("module name can't be empty string """)
KeyError: 'module name can't contain "."'

Hi,
Regarding version detail, I might have made an error so will check it tomorrow. However regarding model, my concern is mainly for inception model as I intend to train my data on it. Can you please share your insights for the same.

This is the same case as 2. in my previous comment:
import torchvision.models as torchMd
arch = torchMd.inception(pretrained=True)

is not going to work, since torchMd.inception points to module (that means an actual file with a .py extension) rather than a function, which is of course not callable. Thus, the error reads:
TypeError: 'module' object is not callable

This is working for alexnet, because the function to load AlexNet has the same name as the module. This is not working for the other cases you described, since the functions are named differently than the module.

As of now the only Inception model implemented in PyTorch is inception_v3. To load it you can use
import torchvision.models as torchMd
arch = torchMd.inception_v3()

I believe @pmeier has addressed all the concerns from @richesh09 .
As such, I'm closing this issue, but please let me know if this isn't the case.

And thanks @pmeier for all the help!

Hi
I got your point. Anyhow for case of arch= torchMd.inception_v3() is throwing me error with error message mentioned in my comment 2. Can you please have a look at it too

Without knowing the exact torch and torchvision versions, further help is nothing more than guessing. Please provide this information first. Otherwise we are unable to help you. As I mentioned before, this working on my setup with the current stable releases.

Hi @pmeier ,
Please note that I just retired and the error message for torchvision remains same.
import torch
print(torch.version)
import torchvision
print(torchvision.version)
1.3.1

AttributeError                            Traceback (most recent call last)
 in
2 print(torch.version)
3 import torchvision
----> 4 print(torchvision.version)
AttributeError: module 'torchvision' has no attribute 'version'
however I am having a folder named "torchvision-0.1.9.dist-info" in my working environment.

torchvision==0.1.9 is a very old release. The last commit was in August 2017. Thus, this is not compatible with the current torch==1.3.1 release. Updating to torchvision==0.4.2 should solve your problem.

Thanks. It worked on updating.

Without being snarky:
Please just follow the instructions we are giving you, if you want us to help you. This whole issue could have been resolved far earlier, if you simply posted your versions in the first place or at least after I asked you too.
For the future:
Since the models are an integral part of torchvision, if a bug like you described existed, most likely you are not alone reporting it. Since no one else reported something similar, a good first step is to update your packages to the newest releases and see if the issue is already resolved. If you are for whatever reason stuck on a specific version for torch or torchvision, make sure to include them in the bug report. Doing so makes debugging your problem far easier for us.


mediaelch: 2.10.4 -> 2.10.6

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/mediaelch/versions.
meta.description for mediaelch is: Media Manager for Kodi
meta.homepage for mediaelch is: https://mediaelch.de/mediaelch/
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.10.6 with grep in /nix/store/2l8ap0s70c66c7vn0dlgnyl3jw179yp9-mediaelch-2.10.6
found 2.10.6 in filename of file in /nix/store/2l8ap0s70c66c7vn0dlgnyl3jw179yp9-mediaelch-2.10.6

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

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
mediaelch
mediaelch-qt5
mediaelch-qt6

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2l8ap0s70c66c7vn0dlgnyl3jw179yp9-mediaelch-2.10.6 \
  --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 mediaelch https://github.com/r-ryantm/nixpkgs/archive/c1181450243e4e06c93cc1c40917bb1edcf5ead9.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/c1181450243e4e06c93cc1c40917bb1edcf5ead9#mediaelch

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2l8ap0s70c66c7vn0dlgnyl3jw179yp9-mediaelch-2.10.6
ls -la /nix/store/2l8ap0s70c66c7vn0dlgnyl3jw179yp9-mediaelch-2.10.6/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

2 packages built:

mediaelch
mediaelch-qt6

Maintainer pings
cc @Stunkymonkey for testing.

Result of nixpkgs-review pr 272233 run on x86_64-linux 1

2 packages built:

mediaelch (mediaelch-qt5)
mediaelch-qt6


Best way to load View to Serenity Dialog?

Hi,
I have a complex cshtml page i want to load to dialog when user click edit in the grid.
I have some mvc pages in the project, but how can i manage ordinary view in diallog and still use the events of the dialog (get id, save, refresh list etc..)
Thank you.

new SomeDialog().loadByIdAndOpenDialog, loadEntityAndOpenDialog etc.

I end up using serenity generated dialog and than injecting html with jsRender:
  protected afterLoadEntity() {
        super.afterLoadEntity();

        Q.serviceCall({
            url: Q.resolveUrl('~/Activities/Get?id=' + this.entity.Id),
            onSuccess: response => {

                var markup = jQuery("#ActivityTemplate").html();
                var html = Q.jsRender(markup, response);
                jQuery(".s-Form").html(html);
            }
        });
    }

Thanks

using jsview
    protected afterLoadEntity() {
        super.afterLoadEntity();

        Q.serviceCall({
            url: Q.resolveUrl('~/Activities/Get?id=' + this.entity.Id),
            onSuccess: response => {
                Q.jsViewLink("#ActivityTemplate", ".s-Form", response);
            }
        });
    }


Rendering strategy

I have to render a large number of data on several layers. Specifically I would like to render, since, 500K figures (between polygons, points and lines). At the moment the map slows down and the browser also becomes very very slow, until it crashes.
How could I handle the situation?
Thanks

See also #9372 and #13409

500.000 Points with webgl probably, 500.000 Polygons no, at least not at once. You can try but you should not show 500.000 geometries at once

@Rskut thanks.
I have two questions:

With what strategy could I show 500K figures if I don't have to upload them at the same time?

Do you think openlayers can render reactively 45K figures?

In one of the projects I work on, I had to render about 35K Polygons with relatively complex styles and geometries. It did work well.
Further approaches and information on this topic:
https://www.w3.org/community/maps4html/2020/04/07/better-web-maps-with-new-browser-features/
https://github.com/mapbox/geojson-vt +  https://openlayers.org/en/latest/examples/geojson-vt.html
https://github.com/openlayers/openlayers/pull/13461

Okay thank you.
Can i contact you again?

Hi @Rskut,
the geojson-vt library seems to work fine but at the moment only with dots. Does it also support linestrings?

It should support linestrings and polygons too. Tiny linestrings may be filtered out, you should check the documentation

@Rskut
I solved. But my problem is that I have to zoom a lot to see the linestrings. Do you know why?

@aparzi you could check your options, tolerance or indexMaxPoints f.e.

I solved, thanks. In geojson file the coordinates were wrong.


An air purifier card from the fan card

Hi again!
Your work is getting more and more wonderful, thank you very much :)
Is your feature request related to a problem? Please describe.
I use an air purifier (Xiaomi) with a doman: fan.
I can turn it on with the fan card, it works. The icon also spins :)
Unfortunately, I can't control it because it doesn't support "percentage" service.
Describe the solution you'd like
To set the speed, these devices use "number" instead of "percentage". For example: number.mi_air_purifier_2s_favorite_level
The speed can be adjusted from 1 to 17.
Describe alternatives you've considered
The fan card is amazing, I really like it. Can you make an air purifier card out of it? The fund can stay the same because it is very good. Possibly with collapsible options (like climate card) where it prints info: for example: air quality PM2.5, filter change ...
Additional context
Thank you very much in advance, your work is my favorite! :)

For now Mushroom card only support one entity. It's not plan to add multiple entity support to keep it simple for now.
Do you known why your fan does not support percentage control? Maybe it's better to fix the integration by bringing percentage support.

Mushroom card only support one entity. It's not plan to add multiple entity support to keep it simple for now.
Do you known why your fan does not support percentage control? Maybe it's better to fix the integration by bringing percentage support.

Hi! Integration used to work at a percentage rate. Xiaomi Miio integration has been rewritten, it no longer supports this service. I don't know why, there are a lot of forums about it.
This new “number.” Statement also only works if I first switch the fan mode to “Favorite” mode. (Cannot be set in Auto, Silent, Idle mode)
I know all Xiaomi air purifiers work this way now. Do you have any ideas for this? Is it worth dealing with?
Thank you :)

Hi all,
having same thing with Purifier 2H over Xiaomi Miio integration.

Home Assistant provide 3 entities : switch, input_number and fan. You need 3 cards to manage it.

I feel like this could be fixed with a template fan, to merge the entities together.


Clarify isNull checking

Hi,
Is there any reason to check the second expression here https://github.com/arasatasaygin/is.js/blob/master/is.js#L128?
is.null = function(value) {
        return value === null || toString.call(value) === '[object Null]';
    };

Could anyone clarify, why is it needed  toString.call(value) === '[object Null]?
@arasatasaygin

@arasatasaygin I can make PR and remove this line. Could you just say, why this check is needed?

I think it's ok to delete that part, like you said @havenchyk
Waiting for the PR. Cheers.

@arasatasaygin great, I will, thanks for response. But what was the purpose to add this line? is it just copy/paste issue or something else?

Probably I thought the difference between null and
var nullObject = Object.create(null);

But it doesn't make sense because stringified version of nullObject is [object Object] as well.


Editing AUTH from CMD not working

When attempting to edit the AUTH.JSON from the CMD (using the script), it asks:
? What would you like to do? Edit `auth.json` file
? Enter the path to the directory that contains your database files: D:\Scraper\Database
? Enter that model's username:

It does not matter what you type into the 'model's username', the script will crash.
Can still modify it manually though, so not really a high priority issue, just a strange bug.

i got passed this part by choosing edit profile and entering auth info when asked and proceeded to enter asked info. I can see the models in the list when choosing that option but wont download any media. show all zeros

i got passed this part by choosing edit profile and entering auth info when asked and proceeded to enter asked info. I can see the models in the list when choosing that option but wont download any media. show all zeros

Same. I'm able to see my model list, but everything is zero even when selecting all options to scrape.
It's a new script, lets give it time. Even if it's not downloading anything, still working a hell of a lot better than the other one! At least this one loads...

The database transfer feature might not work. It was built for a older version of dc script.
I'm working on adding meta data, and a DB using the same DB files

For now version 1.51 should force a proper auth file.
I haven't encounter the printing zero error.
If you could take a screenshot of program running that would be very helpful
alternatively I just need to know what command your  running with.
Also what options your picking in the menu.
and I think seeing what model your attempting to download from would be helpful.
If a subscription has expired for example, then you can only scrape messages and paid content.

In this case if you select enter field manually, then it will be prefilled with your previous values


feat: txt-update event

Hi @mdidon,
I have a device which contains a status in its TXT record. This changes and I need to detect it. However, bonjour-service would not emit an event if an announcement of an already discovered service was received, even if the TXT  record has changed.
This adds a new event called txt-update which is emitted if the TXT record has been updated.

Hi @mdidon,
any update on this? Is there anything else that needs to be done?

@hrueger Like the idea, will be included in PR #44

Great to hear, thanks!


Text selection doesn't appear desktop for CupertinoTextField

The selection is invisible when using CupertinoTextField on desktop.  Tested on Mac and Linux.
In the screenshot below, the text is selected with cmd-A and should all be highlighted in blue.

Strangely, if I right click a couple of times to show the context menu, the selection will suddenly start appearing and will henceforth work correctly.

Code sample
import 'package:flutter/cupertino.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({
    Key? key,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return const CupertinoApp(
      title: 'Cupertino App',
      home: CupertinoPageScaffold(
        child: Center(
          child: CupertinoTextField(),
        ),
      ),
    );
  }
}

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel edge-scrolling-desktop, 2.6.0-12.0.pre.612, on macOS 11.6 20G165 darwin-x64, locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[!] Xcode - develop for iOS and macOS (Xcode 12.5)
    ! Flutter recommends a minimum Xcode version of 13.0.0.
      Download the latest version or update via the Mac App Store.
[✓] Chrome - develop for the web
[!] Android Studio
    ✗ Unable to find bundled Java version.
[✓] VS Code (version 1.61.2)
[✓] Connected device (2 available)

! Doctor found issues in 3 categories.

Reproducible on dev, master, and beta, but stable seems to work just fine.
Appears to be a regression.

 videos
stable
https://user-images.githubusercontent.com/88313112/141312304-8729cbb0-8cbe-472a-b786-8edf4f632547.mov
master(same behavior as beta and dev)
https://user-images.githubusercontent.com/88313112/141312151-ffec7c48-e2e9-442a-9364-616dc52dc1b6.mov

flutter doctor -v
[✓] Flutter (Channel master, 2.6.0-12.0.pre.688, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.6.0-12.0.pre.688 at /Users/nexus/dev/sdks/flutters
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f7053eb8ba (11 hours ago), 2021-11-10 21:31:32 -0500
    • Engine revision d5cadd28b0
    • Dart version 2.15.0 (build 2.15.0-285.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.28.0

[✓] Connected device (4 available)
    • M2007J20CG (mobile)    • 5dd3be00                  • android-arm64  • Android 11 (API 30)
    • Nexus’ IPhone (mobile) • 00008020-001875E83A38002E • ios            • iOS 15.0.2 19A404
    • macOS (desktop)        • macos                     • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)           • chrome                    • web-javascript • Google Chrome 95.0.4638.69

• No issues found!

[✓] Flutter (Channel stable, 2.5.3, on macOS 11.6 20G165 darwin-arm, locale en-GB)
    • Flutter version 2.5.3 at /Users/nexus/dev/sdks/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (4 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/nexus/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 13.0, Build version 13A233
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.28.0

[✓] Connected device (4 available)
    • M2007J20CG (mobile)    • 5dd3be00                  • android-arm64  • Android 11 (API 30)
    • Nexus’ IPhone (mobile) • 00008020-001875E83A38002E • ios            • iOS 15.0.2 19A404
    • macOS (desktop)        • macos                     • darwin-arm64   • macOS 11.6 20G165 darwin-arm
    • Chrome (web)           • chrome                    • web-javascript • Google Chrome 95.0.4638.69

• No issues found!


Permissions are always unticked in the new consent screen which lead to issues with openid being always added to scope

The new google sign in prompt has the behaviour that all the authorized scopes will be unchecked by default.
That is still not problematic as if none of the permissions are checked, the user gets a prompt to consider allowing the permissions.
However, using gapi the 'openid' permission is always added to the scope variable, so if the user clicks continue without allowing proper permissions, there will be no prompt for the user making the process confusing.
Here is my code:
gapi.auth2.init({       client_id: clientId,       discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest'],       scope: 'https://www.googleapis.com/auth/calendar.events',       fetch_basic_profile: false,     });
Now when i call gapi.auth2.getAuthInstance().signIn() the user gets the following consent screen after logging in:

Since the user does not have the "View and edit events on all your calendars." option checked and they click on continue(which i expect most users do) they will be unable to use functionalities which call the gapi calendar events API.

This is impacting us as well. Is there a way to specify that those MUST be checked, or at least have them on by default?

We're still seeing this issue where permissions were unchecked by default, most users wouldn't check them on the consent screen causing many issues. Can someone help? Thanks

Hi @chiragbytes, Please tell me if you find the solution, i am also facing the same...

Any update on this?

(I'm not a Google employee) To my understanding, Google considers all scopes optional to the authenticating user. When you combine multiple scopes in one oauth request Google will have sensitive and restricted scope unchecked. You cannot change this behavior via the consent screen
I found a work-around trick.

Start with a consent screen asking only for email profile scopes
Once the user accepts, redirect them back to the consent screen asking for your sensitive scope.

I created a Loom to demonstrate this working https://www.loom.com/share/d7ed53edbe72481fa46eccc2eaf7ecec
Enjoy!

@stevepeak That would be best if you have an example code! Anyway, your workaround is very smart.

@stevepeak does the work-around still make the checkboxes disappear if you request for 2 sensitive scopes (instead of 1)?


Add Go tests

Worked on in the past few commits, should be improved further to increase coverage: https://coveralls.io/github/mrfleap/custom-compression?branch=master


external_deps: add our own mirror, and options to only download or prefer our own mirror

Fixes Unvanquished/unvanquished-infrastructure#37:

https://github.com/Unvanquished/unvanquished-infrastructure/issues/37

Also brings other improvements and fixes.
This implements:

external_deps: tell curl to set the remote timestamp of the downloaded archive

external_deps: add --download-only option

external_deps: fix all windows-amd64-mingw package list

external_deps: add meta platforms like 'all'
This make possible to do:
./build.sh --download-only all all
or:
./build.sh build-linux base

external_deps: add our own mirror and add --prefer-ours option (disabled by default)

external_deps: make options cumulative

external_deps: fix help printing on macOS

external_deps: prefer xz archives when available

I don't like the src URL name much as many of the archives are binaries, not sources. Maybe mirror? IDK

Maybe original? Some archive may have renamed file names (like those that don't carry any version string), but the archives themselves are not modified, so that's still “original”.

Who is responsible for uploading things to the mirror and when?

Uploading things to the mirror are not required and not doing it is not blocking, it's just something we can do to be improve robustness of fix a build that breaks, so I don't think we have to designate someone to be responsible for this.
Outside of that OpenAL story I'm concerned that our NaCl files are from 2014, and if we implement Saigo, we may rely in snapshots I have no idea about the availability in time.

Maybe original?

Better than src I guess. Another idea is inputs (inputs for our deps packages).

I modified it to use original.

LGTM


undeclared outputs are added to registry by calculator w/o error

in the calculator the output registry is updated which allows any keys to be added even if they were never declared in the model.
What should happen?

see SimEng2 issue 13


Is there a way to warn when someone has redundantly called yield p = np?

Going forward, because of https://github.com/bullet-train-co/nice_partials/pull/32, folks don't need to call <% yield p = np %>. If they do, it's not probably harmful except for performance... but is there some way of issuing a warning to them?

There might be a way, but I've also been working on an update script to just do it for people.
This removes <%= yield p = np %>\n+ and replaces p.content_for with partial.content_for, so it relies on #36 / #37.
Dir["app/views/**/*.html.erb"].each do |path|
  if contents = File.read(path).match(/(<%=? yield\(?.*? = np\)? %>\n+)/m)&.post_match
    contents.gsub! /\bp\.(?=yield|helpers|content_for|content_for\?)/, "partial."
    File.write path, contents
  end
end

We could put this in the CHANGELOG to help people upgrade.

Generated patch for `bullet_train-themes-light`
Note how this leaves cp.content_for unaltered in _page.html.erb.
diff --git a/app/views/themes/light/_box.html.erb b/app/views/themes/light/_box.html.erb
index 2556e5d..ecc95e8 100644
--- a/app/views/themes/light/_box.html.erb
+++ b/app/views/themes/light/_box.html.erb
@@ -1,48 +1,46 @@
-<% yield p = np %>
-
 <% divider ||= nil %>
 <% no_background ||= false %>
 <% title_size ||= nil %>
 <% title_padding ||= nil %>
 <% border_top ||= false %>
-<% body = p.content_for(:body) || p.content_for(:raw_body) %>
+<% body = partial.content_for(:body) || partial.content_for(:raw_body) %>
 <% pagy ||= nil %>

 <div class="<%= "bg-white rounded-md shadow dark:bg-darkPrimary-700" unless no_background %> overflow-hidden <%= border_top ? "border-t dark:border-darkPrimary-500" : "" %>">
   <div class="py-6 px-8 <%= title_padding %> space-y-2 <%= 'border-b shadow-sm dark:border-darkPrimary-600' if divider %>">
-    <% if p.content_for? :title %>
+    <% if partial.content_for? :title %>
       <h2 class="text-xl font-semibold dark:text-white <%= title_size %>">
-        <%= p.content_for :title %>
+        <%= partial.content_for :title %>

     <% end %>

-    <% if p.content_for? :description %>
+    <% if partial.content_for? :description %>

-        <%= p.content_for :description %>
+        <%= partial.content_for :description %>

     <% end %>

-    <% if p.content_for? :table %>
+    <% if partial.content_for? :table %>
       <div class="box-table <%= divider ? 'mt-4' : '-mt-1' %> pb-0.5">
-        <%= p.content_for :table %>
+        <%= partial.content_for :table %>

     <% end %>

     <% if body %>
-      <div class="<%= "pt-7 px-8 space-y-7 #{p.content_for?(:actions) ? 'pb-3' : 'pb-7'}" unless p.content_for?(:raw_body) %>">
+      <div class="<%= "pt-7 px-8 space-y-7 #{partial.content_for?(:actions) ? 'pb-3' : 'pb-7'}" unless partial.content_for?(:raw_body) %>">
         <div class="space-y-4 <%= '-mt-4' unless divider %>">
           <%= body %>

In #45 I'm making it such that we'll avoid auto-yielding if there's a manual yield in the partial. So that should make upgrades easier, and then people could use the script above.

Solved in #45 where we only auto-yield if there's no manual yield, and the update script is in the CHANGELOG for people to help themselves. I think that's enough coverage to skip needing a warning.


[WIP] (#10131) Adding Bugdown Support to CustomProfileField

Progress:

Added the required models change and code for saving rendered value for short and long text fields.
Yet to add events notification code (i.e. modify notify_user_update_custom_profile_data and any other methods involved).
Unit tests and docs update pending.

Feedback Wanted:
Are the changes made so far up to mark? This is my first change to the Zulip codebase so any and all feedback is appreciated.
Testing Plan:
So far only basic manual testing has been done. Unit tests will be made once the complete functional requirement has been met. These unit tests will be followed by a documentations update, if and as needed.

I seem to have made some pep8 related issues. I have fixed them and will push them with the next commit.

@Hypro999 thanks for working on this!  The structure generally looks reasonable; I posted a quick comment on naming.

I realize that I've done bugdown rendering in the view itself. Would this cause any performance penalties that I should be concerned about?

Good question!  The answer is that it's totally fine to do it here.  The key issue is that Tornado as an ecosystem is an event-loop system (like javascript), and thus doing blocking requests or expensive computations has a major impact on scalability.  That issue doesn't apply to any of our non-Tornado code (i.e. not zerver/tornado/).

I'm tempted to call the send_event() method twice inside of notify_user_update_custom_profile_data() but I feel like this might be an inefficient approach.

Sending both values is the way to go; while send_event isn't particularly expensive, when you get to writing the frontend code, you'll find it's far nicer for the frontend to be receiving the rendered_content when it receives the notification about the custom profile field, so that it can proceed with rendering.

(Sidenote: You need to post a comment after pushing a new version for folks to be notified; GitHub doesn't handle this for you correctly)

For the linter errors, the cause is the subject -> topic migration; see ``zerver/lib/topics.py` and the related commits for how to migrate your code (mostly involves switching things to use some constants defined there).

I posted a few comments; the other design question I'd like to talk about is whether we should be sending a rendered_content value via the events system when it's None; I had been imagining we'd only send that key at all for field types where it's appropriate.  What was your thinking around this?

(Also, thanks for working on this; it's looking really good for a first big PR!)

the other design question I'd like to talk about is whether we should be sending a rendered_content value via the events system when it's None;

When I initially wrote this, I was just thinking that maintaining consistency would be a good idea. But now that I think about it more carefully, I realize that this is for an event notification system and not a REST API endpoint. So it might be unnecessary... should I make this change then?

When I initially wrote this, I was just thinking that maintaining consistency would be a good idea. But now that I think about it more carefully, I realize that this is for an event notification system and not a REST API endpoint. So it might be unnecessary... should I make this change then?

Yeah, I think we should.  We generally like to optimize for minimal complexity inside the client apps the interact with the Zulip API/events, and I think having them check if there is an event.rendered_content is a nice clean approach, so no need to send that here.

When I initially wrote this, I was just thinking that maintaining consistency would be a good idea. But now that I think about it more carefully, I realize that this is for an event notification system and not a REST API endpoint. So it might be unnecessary... should I make this change then?

Yeah, I think we should. We generally like to optimize for minimal complexity inside the client apps the interact with the Zulip API/events, and I think having them check if there is an event.rendered_content is a nice clean approach, so no need to send that here.

On second thought, I might need to leave things as they are. The reason being that test_custom_profile_field_data_events expects the keys of the event dictionary to be constant.

Update:

I've added the necessary backend code for checking if the rendered values exist and if not generating them (backwards compatibility code) and then adding these rendered values in the initial state (and during apply_events). currently it may still be imperfect.
I've started adding the required frontend for this feature for the web client. But It's not yet complete. There are certain issues that I'm facing that I'm trying to solve over time.

Note:
This is still definitely a WIP PR.

This looks great, squashed to clean up the commit history and merged as 46408a50adda89052c58bfb0634ac80f6d037b2e, thanks @Hypro999!
BTW, our development style is to squash fixup commits into the commit that introduced the error while developing a PR (which is why I squashed these), but to merge separate commits for independent steps of developing a feature (e.g. in this case, if you'd had the frontend part ready, we'd probably merge that as a separate commit).  Check out our commit guidelines for more details.
I'm closing since all commits here are merged and it's better to use a new PR for the frontend piece (since then folks don't need to skip past all the comment history on the backend to get discussion of the frontend).
Thanks for your work on this @Hypro999, and I'm looking forward to the next phase!


Sklearn object having a preprocessor function cannot be converted

pure_sklearn.map.convert_estimator function crashes during a conversion of a sklearn unit having a functional variable (a CountVectorizer with a preprocessor parameter in my case).
ValueError: Object contains invalid type: <class 'function'>
To Reproduce
from pure_sklearn.map import convert_estimator
from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer(preprocessor=lambda x:x)
vectorizer.fit(["aaaa", "bbbb", "cccc"])

convert_estimator(vectorizer)

Additional context
The bug can be fixed by adding built-in types.FunctionType into TYPES tuple of pure_sklearn.utils.py module. So I suggest to replace:
TYPES = (int, float, str, bool, type)

with:
from types import FunctionType

TYPES = (int, float, str, bool, type, FunctionType)

Hi thanks for raising the issue. Would you be open to submitting a PR with the suggested changes including a unit test to ensure that this error doesn't persist? I'd gladly approve the PR if it is indeed a basic update as you suggest.


add extraConfig section to networking.wireless

Motivation for this change
I would like to be able to add config options not built into Nix without having to write the whole wpa_supplicant.conf file myself.
Things done
added an extraConfig option to networking.wireless to allow custom wpa_supplicant config options

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Thanks! :+1:


Stack overflow serialising long list

Serialising an array with many (i.e. hundreds of thousands) elements using the generated to_yojson function produced a stack overflow. Tracked this down to the use of List.map in this snippet of the generated code:
fun x ->
  `List
    (List.map
      (fun x ->
        <element-type>.to_yojson x) x)

Replacing List.map with the tail-recursive List.rev_map fixes this but reverses the order. Calling List.rev on the result of List.rev_map should generate correct results without the risk of a crash, but at a performance penalty.

Is this a known limitation of List.map, or is it something that can be fixed on the List.map side?
Could List.map detect when it would otherwise overflow the stack, and if it would, allocate on the heap instead? (That's basically what the rev_map rev thing would do, but only in the just-before-overflow special case.)

Actually the OCaml-containers CCList.map does exactly what you're suggesting, with different behaviour depending on the length of the list. See https://github.com/c-cube/ocaml-containers/blob/8e3dc5e006cfd82c78c7784b366b637189191d07/src/core/CCList.ml#L104

Now is it worth a dependency on ocaml-containers or some other package that implements map properly?

yes -> depend on package, use their map function instead
no -> implement map here in ppx_deriving_yojson_runtime.ml ??

No, I don't think this is worth an extra dependency. We could just use List.rev (List.rev_map f li) for now, and wait for tail-recursion modulo cons to arrive so that List.map becomes tail-recursive again.

Is there a length of list to check that would be a stack overflow on most machines?
I'm trying to make a test that would fail with the current implementation but succeed with a stack-safe rev and rev_map. However, the tests I've tried aren't even failing when I use a list of length 1000000 (1 million).

On my machine ulimit -s reports a stack-size limit of 8192. My suspicion is that the test you generate is not hitting this List.map call, because I think a million elements should blow the stack on basically any machine.
P.S.: I can't read the integer literal you wrote to check that it is a million, do not hesitate to use underscores in numeric literals: 1_000_000 is immediately checkable for me.

Nice! Many thanks. I think it's an improvement. Can't really see any serious downsides...
I'm not super-familiar with GitHub processes... My understanding is that this is now merged back to the master branch but not yet released. Is that correct? When do you anticipate making a new release with this change included in it?


Changes to BYOS section

Editing the doc to reflect the BYOS --> PAYG conversion steps and links.

Docs Build status updates of commit d7fc2c7:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/virtual-machines/workloads/redhat/byos.md
:warning:Warning

Details

articles/virtual-machines/workloads/redhat/byos.md

Line 29, Column 201: [Warning: hard-coded-locale - See documentation] Link 'https://learn.microsoft.com/en-us/azure/virtual-machines/linux/azure-hybrid-benefit-byos-linux#get-started' contains locale code 'en-us'. For localizability, remove 'en-us' from links to most Microsoft sites.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 2ae146b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/virtual-machines/workloads/redhat/byos.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@mamccrea
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

Docs Build status updates of commit d3bd9dd:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed]

Cannot sync git repo to specified commit because ref +refs/pull/98938/merge has been deleted or has been force pushed.
 If this is pull request, please ensure it is mergeable (no merge conflict) and open (not closed).

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Control flow in Broker needs a rethink

There is a code path where selected_fields is an unbound local. attn @hhslepicka

Wrong repo! Moving to databroker.


Untranslated cases.status_pending_admission in cases page

On branch feat/relation-diagram, the translation for status_pending_admission is missing at the moment.

It's becoz it is branched out a while ago and not being rebased yet, it will be resolved when it merges to dev branch.


[Snyk] Security upgrade express from 4.17.3 to 4.19.2

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

infrastructure/internal-api/code/package.json
infrastructure/internal-api/code/package-lock.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

591/1000  Why? Recently disclosed, Has a fix available, CVSS 6.1
Open Redirect SNYK-JS-EXPRESS-6474509
No
No Known Exploit

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: express
    The new version differs by 136 commits.

b28db2c 4.19.2
0b74695 Improved fix for open redirect allow list bypass
4f0f6cc 4.19.1
a003cfa Allow passing non-strings to res.location with new encoding handling checks fixes #5554 #5555
a1fa90f fixed un-edited version in history.md for 4.19.0
11f2b1d build: fix build due to inconsistent supertest behavior in older versions
084e365 4.19.0
0867302 Prevent open redirect allow list bypass due to encodeurl
567c9c6 Add note on how to update docs for new release (#5541)
69a4cf2 deps<EMAIL_ADDRESS>4ee853e docs: loosen TC activity rules
414854b docs: nominating @ wesleytodd to be project captian
06c6b88 docs: update release date
1b51eda 4.18.3
b625132 build: pin Node 21.x to minor
e3eca80 build: pin Node 21.x to minor
23b44b3 build: support Node.js 21.6.2
b9fea12 build: support Node.js 21.x in appveyor
c259c34 build: support Node.js 21.x
fdeb1d3 build: support Node.js 20.x in appveyor
734b281 build: support Node.js 20.x
0e3ab6e examples: improve view count in cookie-sessions
59af63a build<EMAIL_ADDRESS>e720c5a docs: add documentation for benchmarks

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Open Redirect

Checkmarx One – Scan Summary & Details – 77a9418f-689f-4c20-b118-06268aa276fd
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2024-24786
Go-google.golang.org/protobuf-v1.27.1
Vulnerable Package

Image Version Not Explicit
/Dockerfile: 1
Always tag the version of an image explicitly


Update Flask

https://github.com/mjhea0/awesome-flask
This PR is a follow up of #1918.
By submitting this pull request I confirm I've read and complied with the below requirements 🖖

LGTM

What PR reviews you have?
"You have to review at least 2 other open pull requests."

Reviewed PRs:

https://github.com/sindresorhus/awesome/pull/1783#issuecomment-640826981
https://github.com/sindresorhus/awesome/pull/1782#issuecomment-640845698

Those are associated with https://github.com/sindresorhus/awesome/pull/1800. Let me know if I need to do two new ones for this PR.

LGTM


Fix parsing of custom emulated machines

What this PR does / why we need it:
We now limit kubevirt to Q35 by default but enable overriding it for testing and debugging purposes. This can be done by setting custom emulated-machines  within kubevirt-config as a comma-separated list. However, users would typically introduce spaces between the values in this list (e.g., "a, b, c") and those space are not treated correctly by the current code. Those spaces will now by trimmed during parsing.
Special notes for your reviewer:
This PR also contains some minor cleanups as separate commits.
Release note:

None

/cc @fabiand @cynepco3hahue

@cynepco3hahue  apparently, there was another test that used an invalid PCI address on q35 (part of vmi_networking_test) so I pushed a fix for that test as well.

ci test please

@davidvossel @cynepco3hahue should we start using arrays instead of comma/space separated strings?

Please correct me if I'm wrong - a configmap is just a mapping of string to string, right?
So let's say that we save those values as arrays or lists or whatever collection we find best, when parsing the yaml to store it in the config map we'll need one transformation and yet another transformation when parsing the value from the config map into consumable functions in virt-properties.go, is that right? because in this case, I would rather prefer to reduce the number of transformations and stick with the comma/space separated string...

if that's the case, I would rather prefer to reduce the number of transformations and stick with the comma/space separated string...

For both we have to interpret it. In one case we have to write our own parsing, in the other case it is clear on how it should be interpreted. We don't have to do the switch now.

To be honest - That would be odd (having yalm in strings).
Maybe it's time for a custom resource to have a KubeVirtConfig.

To be honest - That would be odd (having yalm in strings).
+1

At the end it should probably be it's own CR, but it is completely normal tho have nested yamls in ConfigMaps.

And as said, we don't have to solve it in this PR.

Ah, that looks better than what I had in mind.
But yeah, +1 on doing it separately.

@rmohr Done

ci test please


[WIP] Also save a copy of archived pages to local disk

Merging in its current state as I really don’t have more time to clean up this code right now.


fix dist.sh compatibility with GNU coreutils mktemp

Resolves this error:
mktemp: too few X's in template ‘oauth2_proxy’

I suggest a slight variation which works more similarly between OS X and linux:
mktemp -d ${TMPDIR:-/tmp}/oauth2_proxy.XXXXXX

@ploxiln That sounds reasonable.  I went digging through $day_job code and last time I ran into coreutil/osx mktemp issues, I ended up with. $(mktemp -t "${conda_packages}.XXXXXXXX")  I don't recall why there are 8 Xs.  Do you know if el cap is also happy with 6 in the pattern?

I tested on OS X 10.10 (yosemite) and ubuntu 14.04. Looks like coreutils demands at least 3 and OS X doesn't complain for any number of them.

I have confirmation from coworkers with el cap that 6 'X"s succeeds.  I'll update the PR in a moment.


Infographic for binder

Hi! While preparing a presentation to introduce binder to my research group, I've prepared this infographic on canva. I am leaving it here for feedback :)   @yuvipanda @choldgraf

cool infographic - thanks for sharing. Not sure exactly what kind of feedback you're looking for though, but it looks nice!

Regarding content and explanations. If they are legit and reflects the
concept in a right way. I also told Yuvi Panda that I can help you with
your graphics work.
On Jun 15, 2017 11:12 AM, "Chris Holdgraf"<EMAIL_ADDRESS>wrote:

cool infographic - thanks for sharing. Not sure exactly what kind of
feedback you're looking for though, but it looks nice!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/binder-project/binder/issues/99#issuecomment-308767918,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJL6QtKVqwxERJJIHBuHYN0Qp2bmBSaGks5sEUnYgaJpZM4N6vm6
.

Hey - sorry for the slowness but we've got a lot of stuff going on these days :-)
A few quick thoughts:

On the "just click" section, keep in mind that this is for users who click on Binder links, but not users who build their own Binder repos (in which case they do need to specify environment files etc). That second group of people is just as important as the first group to us.
Multiple languages section: right now we only support Python + 1/2 support for Julia. R is coming too. While people could set up their own language environment with a Dockerfile, this is probably more setup than most people are willing to put into it.
"sharing is caring" for what it's worth, we'd love to see binder-style reproducible analyses as a core part of the scientific publishing process, not just something authors volunteer out of the goodness of their hearts ;-)
Speak for themselves -> "speak for themselves"...in the future you can also link to our curated list of Binder deployments (which doesn't exist yet, but one day :-P ).


Login and repos

I fixed the tests for the list-repos feature. However, after merging in the new login functionality I was unable to get it working again. I could use some help to get it fixed.

Ben je morgen op kc? Ik kan dan wel helpen.

Yes I am. Please keep it English here :+1:

Sorry I won't be there. But if you see any possible solutions please inform me. I have time tomorrow evening to continue working on this ;)

However, after merging in the new login functionality I was unable to get it working again

@korthout what is the problem? It isn't working with the 'real' backend? Or with stubbed/mocked data?

I can't seem to get the frontend to work in a browser. That also means the angular tests, because these rely on the components to be rendered in a browser.

Ok, i'll try to have a look later today

I fixed some things. @korthout  can i give you a call later so i can explain what i did?

I'm very interested in how you got it working, but sadly I just went home sick. So perhaps tomorrow. I'm great to hear you got it working though.

Ok, give me a call when you've got the time ☎ (~12.05h would be best)


Add Windows and 32-bit Linux support

Crosscompile for Windows and 32-bit Linux support.

Turns out cross compile for windows via mingw is a real pain. Skipping it for now.


Colour Codes not being removed from Discord

Hello,
I have tried every possible combination of config options to remove colour codes from Discord. Nothing seems to work.
Here is a copy of my config - https://paste.ee/p/CQ3CU
This is what chat output looks like:

Version - dcintegration-1.1.18-1.12

Update:
Even enabling it to be a webhook (which I don't want to use anyways) does not fix this issue.


WA for TOUTIAO APP

Check /proc/PID/cmdline to see if the application is TouTiao. If yes, only use system memory to workaround the incorrect Bufferqueue.
Once APP fix Bufferqueue issue, please remove me.
Tracked-On: OAM-111768

Improper Commit Message
Improper Affects version


[FLINK-25143][test] Add ITCase for periodic materialization

What is the purpose of the change
Add ITCase for periodic materialization in Changelog state backend.
This verifies that checkpointing works correctly for Changelog state backend with materialized state / non-materialized state.
Brief change log

Add ITCase called ChangelogPeriodicMaterializationITCase

Verifying this change
This change added tests and can be verified as follows:

Added test ChangelogPeriodicMaterializationITCase

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

Thanks for the contribution! Please take a look at my comments.

Thanks for review! I have resolved conversations and you could double check it.

Thanks for the PR @masteryhx, I've left some comments, PTAL.
I also see a related test failure. Is it caused by the test logic or the backend?

Thanks for review! I have resolved some conversations and left comments.
For the test failure, maybe it is caused by FLINK-26101 and it will occur in low probability.

Thanks for the contribution! Please take a look at my comments.

Thanks for review! I have resolved conversations and you could double check it.

The CI failed on ChangelogPeriodicMaterializationRescaleITCase.testRescaleOut. I tried to reproduce this problem and found that this is caused by #18741, please rebase that PR and then update this PR to run CI again.

Done. let's see.
@flinkbot run azure

FYI, my local CI to run this PR passed: https://myasuka.visualstudio.com/flink/_build/results?buildId=405&view=results

One more thing, can production (DFS-based) changelog implementation be used in this test?
(FsStateChangelogStorageFactory.configure)

One more thing, can production (DFS-based) changelog implementation be used in this test? (FsStateChangelogStorageFactory.configure)

You can see configure method in ChangelogPeriodicMaterializationTestBase

FLINK-26455 is now resolved and merged, I've rebased this PR on top of the current master.


Migrate analytics events to MST using sendEvent action

https://github.com/wp-pwa/saturn-theme/issues/311

Using now withHandlers when needed. Ready to be reviewed again, @luisherranz!

Approved. Feel free to merge.

:tada: This PR is included in version 0.7.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.6.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: