Search bar update

Currently:
On app startup, all valid repositories and orgs are queried from Augur exactly once, and kept as a constant global variable.
When user's interact with the search bar, each keystroke is an HTTP request to the backend which filters the list of repos/orgs that the user receives as search bar options.
This has two downsides:

The application needs to be restarted to update the available repos / orgs.
Successive HTTP requests for search consume application server resources. When the client network is slow, this can be annoying.

This has also contributed to a fair number of subtle, confusing bugs:
https://github.com/oss-aspen/8Knot/issues/611
https://github.com/oss-aspen/8Knot/issues/542
https://github.com/oss-aspen/8Knot/issues/294

Proposed solution:

The search bar component (dash_mantine_components.MultiSelect) receives all options as props and filtering by user-input is done client-side. We don't have sophisticated search requirements, and the number of options we need to support is relatively small. This solves downside #2 above, because we only move the options over once, and successive requests for filtering are unnecessary.
(Part 1) Repo/org options are queried during the startup execution and cached in Redis for shared re-use.

import dash
from dash import callback, Input, Output, dcc, html
from dash_mantine_components import MultiSelect
import time
import redis
import pickle

app = dash.Dash(name="__name__")
db = redis.Redis()

# sets truthy value of 'disabled'
# so when 'disabled = False', MultiSelect is enabled.
MULTISELECT_ENABLED = False
MULTISELECT_DISABLED = True
MULTISELECT_BLOCKED_MESSAGE = "Loading options..."
MULTISELECT_READY_MESSAGE = "Pick a web framework!"

# search bar options stored in Redis.
# if >512MB of options (why?), use a Redis list instead of pickling.
sb_options = ["Vue", "React", "Next.js", "Remix", "Angular"]
SB_OPTIONS_KEY = "8knot:searchbar:options"
sb_options_pickle = pickle.dumps(sb_options)
db.set(name=SB_OPTIONS_KEY, value=sb_options_pickle)

app.layout = html.Div(
    children=[
        MultiSelect(
            id="multiselect",
            data=["something"],
            clearable=True,
            searchable=True,
            disabled=MULTISELECT_DISABLED,
            placeholder=MULTISELECT_BLOCKED_MESSAGE,
        ),
    ]
)

@callback(
    [
        Output("multiselect", "data"),
        Output("multiselect", "disabled"),
        Output("multiselect", "placeholder"),
    ],
    Input("multiselect", "clearable"),
)
def set_sb_options(_):
    """
    On-mount callback to set updated options in search bar.
    """

    time.sleep(2)
    start = time.time_ns()
    opts = pickle.loads(db.get(SB_OPTIONS_KEY))
    end = time.time_ns()

    # can take between 0.1ms and 3ms -- very fast to grab from cache.
    print(f"Load search bar options from Redis + unpickle: {(end - start) / 1e6} ms")
    return opts, MULTISELECT_ENABLED, MULTISELECT_READY_MESSAGE

if __name__ == "__main__":
    app.run(debug=True)

(Part 2) We revalidate the search options intermittently. The most fool-proof way of doing this with our current tools is to have a Celery Beat scheduled job run once every 8 hours (as an example), and update the options in Redis if they're outdated. Alternatively, we could have the set_sb_options callback do the same thing as required, kicking off a revalidate_sb_options celery task if the timestamp of the options are outdated.

def set_sb_options(_):
    """
    On-mount callback to set updated options in search bar.
    """

   # pseudocode btw
   if (db.get(SB_OPTIONS_TTL_TS_KEY) < (time.now() - time.timedelta('8hr')):
        revalidate_sb_options.delay() # kick off asynchronous revalidation task

    # get outdated options anyway since this is a synchronous request- can't wait for revalidation.
    # could set a notification that results might be out of date, and to try again in a sec, maybe.
    time.sleep(2)
    start = time.time_ns()
    opts = pickle.loads(db.get(SB_OPTIONS_KEY))
    end = time.time_ns()

    # can take between 0.1ms and 3ms -- very fast to grab from cache.
    print(f"Load search bar options from Redis + unpickle: {(end - start) / 1e6} ms")
    return opts, MULTISELECT_ENABLED, MULTISELECT_READY_MESSAGE

The first approach is undoubtedly more seamless because all of the updates happen behind the scenes, but it requires taking on another tool w/ Celery Beat, and defining it in Openshift and Compose. The second alternative might cause non-zero more marginal user discomfort, but it puts the logic in the same place, and may be clearer to maintain.

Next step
Should implement a toy example of the application with the above proposed solution. Some remaining questions are:

Is the total set of options that we need in 8Knot small enough that we can ergonomically transfer them to the client in reasonable time on each page load?
Is the set small enough that unpickling is fast?
How does the app perform on fast 3G mode (browser networking limit mode)?
How hard is it actually to set up and maintain Celery Beat? On-miss revalidation is simpler, but could be annoying in the worst case.

Answers to above:

Total set of options is <5MB, takes 0.5 seconds to go across a 8MB/s network, or 1.7 seconds on 20Mb/s network.
Reading from SQLite takes <5ms, unpickling takes <50ms.
Pretty slow at fast-3G.

Example application:
Dash app:
import dash
from dash import html, dcc
import dash_mantine_components as dmc
import time
import redis
import pickle

db = redis.Redis()

app = dash.Dash(name=__name__)
server = app.server

app.layout = html.Div(
    children=[
        html.Ul(id="selected-list"),
        dmc.TransferList(
            id="repo-multiselect",
            limit=75,
            placeholder="Select a repo:",
            value=[[],[]],
            showTransferAll=False,
            searchPlaceholder="Loading options...",
        ),
        html.Button("Submit", id="submit-button", n_clicks=0),
    ]
)

@dash.callback(
    dash.Output("selected-list", "children"),
    dash.Input("submit-button", "n_clicks"),
    dash.State("repo-multiselect", "value"),
)
def handle_clicks(n_clicks, multiselect_values):
    if not multiselect_values:
        return []

    return [html.Li(children=str(v)) for v in multiselect_values[1]]

@dash.callback(
        dash.Output("repo-multiselect", "value"),
        dash.Output("repo-multiselect", "searchPlaceholder"),
        dash.Input("repo-multiselect", "limit") # random static input prop to trigger callback
)
def load_sb_options(_):
    """
    Called to populate options in search bar after initial render.
    Pulls updated options from cache.
    """
    start = time.time_ns()
    searchbar_options = pickle.loads(db.get("8knot:sb_options"))
    end = time.time_ns()

    print(f"Time to get options from Redis: {(end - start)/10e6}ms")

    return [searchbar_options, []], "Search for repos and orgs!"

if __name__ == "__main__":
    app.run(host="localhost", port="8080", debug=False)

Celery Beat revalidation
import celery
from celery.schedules import crontab
import redis
import pickle
import sqlalchemy as salc
import time

celery_app = celery.Celery(
    broker='redis://@localhost:6379/0',
    backend='redis://@localhost:6379/0',
)

@celery_app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):

    # revalidate searchbar options cache every 10 seconds. Will be 4 or 8 hours in prod.
    sender.add_periodic_task(10.0, revalidate_cached_sb_opts.s(), name="sb opts revalidation")

    # can add postgres cache invalidation logic as a periodic task here too!

@celery_app.task
def revalidate_cached_sb_opts():
    """
    Queries all searchbar options from source-of-truth DB.
    Transforms options into component-consumable format.
    Stores options in Redis.
    TODO: handle db/cache communication errors.
    """

    # connect to redis
    db = redis.Redis()

    def get_sb_options_from_db():
        # connect to database
        engine = salc.create_engine("sqlite:///repos.sqlite", echo=False)

        with engine.connect() as conn:
            res = conn.execute(
                salc.text(
                    "select * from repo_list rl order by rl.rg_name, length(rl.repo_git) asc"
                )
            )
            data = res.all()
            return data

    start_reval = time.time_ns()

    new_opts = get_sb_options_from_db()

    transformed_opts = [{"label": f"{t[3]} || {t[1]}", "value": t[1]} for t in new_opts]

    db.set("8knot:sb_options", value=pickle.dumps(transformed_opts))
    end_reval = time.time_ns()

    # log success
    print(f"revalidated searchbar options! took {(end_reval - start_reval) / 1.0e6} ms")

Definitely not too slow to be useful. I think that this is the right solution for what we're wanting.

This is the general architectural design that I'm going off of.


(PUP-3488) Stop overwriting agent's facts timestamp

This commit undoes a change made in commit fb5f859cf4 that
causes the master to alter the agent's facts timestamp when
they are received by the catalog compiler.
With this change, the facts timestamp is always based on the
agent's time.

/cc @senior @wkalt

CLA signed by all contributors.


Debugging express prototype/constructor variables infinitely nested

VSCode Version: 0.10.12-alpha
OS Version: Windows 10

Steps to Reproduce:

Open a Node.js Express application (I'm using https://github.com/heroku/node-js-sample)
Set a breakpoint inside index.js at line 4 (app.set('port', ...)
Start debugging
Expand express: function createApplication() {...}
Expand Application: Object
Expand checkout: function (path){...}
Expand prototype: Object
Repeat steps 6 and 7

Actual:
Can expand these 2 indefinitely

I cannot reproduce this in the latest.


Reading table gets hanged at last stage

While reading columns from Hbase table, job gets hanged  at last stage.
Cluster Size: 3 nodes
Spark Version: 1.5.2
Executor-Memory (Per Node)=16 Gb
Number of cores :24
Driver Memory: 4Gb

Can you provide more information about the issue? What kind of cluster, how did you create the tables, what data is present in the table, how much data, how do you read the data...


refactor(v2): remove sidebar_label filed from doc metadata file

Motivation
After merging #4495, all frontmatter fields became part of doc metadata, we have at least one redundant field -- sidebar_label. We can safely remove it from the current metadata, and get it from the frontMatter field instead.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
Tests passed.
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/docusaurus, and link to your PR here.)

I also noticed the slug field, which seems to come from frontmatter (?), maybe we should also remove it as a separate field from the doc metadata?

In general, are all fields in doc metadata currently used, perhaps we should remove or somehow reduce them?

Make sense thanks!

For the slug, the metadata.slug is not exactly the same as frontMatter.slug (cf getSlug()).
frontmatter slug is optional, but metadata slug is always present and computed using the frontmatter slug
It seems only used in getMainDoc() to test for `doc.slug === '/'
I think we should keep it because we should add better support for docs/index.md => it should have metadata.slug = '/' despite not having explicit frontMatter.slug = '/', and be considered the "home" of a version.
My idea behind this is that we keep frontmatter untouched, and when we have to do some computations based on multiple variables (including frontmatter, filenames etc), we compute this once and put it in the doc metadata, so that it can be used in one or more places later.
sidebar_label can be safely removed from metadata because we don't do any computation on it, so it's always the same value as the frontmatter value


Add badges to wasi-common crate's README

This commit adds missing crates.io and docs.rs badges to wasi-common crate's README, and reformats it in line with the style used in bytecodealliance/cargo-wasi.

Looks nice!


Labels management

For better issues management, we need a set of labels. Please, leave your version of labels in a comment to this issue

My candidates:

bug  - some runtime errors or some rule has described (in community or our rules) but isn't being checked
duplicate - mostly for maintainers. Will set this label before closing some issues
enhancement - for changing some markdown files, realesing new version and changing some processes (so I prefer to remove process label maybe after finishing all current issues)
feature request - when we're going to add or override some new cop and add a custom
help wanted
high priority - how do you think should we add this label?
refactoring - instead of infra
postponed
question

I motivated labels from rubocop gem. What do you think about it?

also, we can add good first issue

also, we can add dependencies for issues and PRs for updating dependencies

updated labels by comments above


BUG: Error: recovered: Block (unix) time must never be empty or negative nstack:ngoroutine 252403 on block 15488803

What is happening?

Section description
Provide as much context as you can. Give as much context as you can to make it easier for the developers to figure what is happening.

Unable to get past block 15488803. Error output:
mainnet-validator palomad[1999487]: {"level":"error","module":"server","err":"recovered: Block (unix) time must never be empty or negative \nstack:\ngoroutine 252403 [running]:\nruntime/debug.Stack()\n\t/opt/hostedtoolcache/go/1.21.8/x64/src/runtime/debug/stack.go:24 +0x5e\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.func5({0x2d03080?, 0x3bfcee0})\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:74 +0x26\ngithub.com/cosmos/cosmos-sdk/baseapp.NewBaseApp.newDefaultRecoveryMiddleware.newRecoveryMiddleware.func7({0x2d03080?, 0x3bfcee0?})\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:42 +0x2d\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2d03080, 0x3bfcee0}, 0x0?)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:31 +0x2f\ngithub.com/cosmos/cosmos-sdk/baseapp.processRecovery({0x2d03080, 0x3bfcee0}, 0x0?)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/recovery.go:36 +0x53\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx.func1()\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:836 +0x136\npanic({0x2d03080?, 0x3bfcee0?})\n\t/opt/hostedtoolcache/go/1.21.8/x64/src/runtime/panic.go:920 +0x270\ngithub.com/CosmWasm/wasmd/x/wasm/types.NewEnv({{0x3c3f5f8, 0x5aefe00}, {0x3c5b680, 0xc00c251a80}, {{0x0, 0x0}, {0xc002301700, 0x9}, 0x0, {0x0, ...}, ...}, ...}, ...)\n\t/home/runner/go/pkg/mod/github.com/!cosm!wasm/wasmd@v0.50.0/x/wasm/types/types.go:278 +0x398\ngithub.com/CosmWasm/wasmd/x/wasm/keeper.Keeper.execute({{0x3c04ea0, 0xc000708ae0}, {0x3c7d068, 0xc002303cb0}, {0x3c1d4d0, 0xc00150be00}, {0x3c06340, 0xc002344720}, {0x3c04aa0, 0xc0009ca918}, ...}, ...)\n\t/home/runner/go/pkg/mod/github.com/!cosm!wasm/wasmd@v0.50.0/x/wasm/keeper/keeper.go:395 +0x6f0\ngithub.com/CosmWasm/wasmd/x/wasm/keeper.msgServer.ExecuteContract({0x4122da?}, {0x3c40058, 0xc00cf1a7b0}, 0xc00cedc1e0)\n\t/home/runner/go/pkg/mod/github.com/!cosm!wasm/wasmd@v0.50.0/x/wasm/keeper/msg_server.go:124 +0x1ba\ngithub.com/CosmWasm/wasmd/x/wasm/types._Msg_ExecuteContract_Handler.func1({0x3c40058, 0xc00cf1a7b0}, {0x3278580?, 0xc00cedc1e0})\n\t/home/runner/go/pkg/mod/github.com/!cosm!wasm/wasmd@v0.50.0/x/wasm/types/tx.pb.go:2264 +0x72\ngithub.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).registerMsgServiceHandler.func2.1({0x3c3f198, 0xc00cf0b180}, {0xc00eb6b500?, 0x411da5?}, 0x358?, 0xc00e5b5170)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/msg_service_router.go:175 +0x93\ngithub.com/CosmWasm/wasmd/x/wasm/types.Msg_ExecuteContract_Handler({0x324f3c0?, 0xc0001b11e0}, {0x3c3f198, 0xc00cf0b180}, 0x361beb0, 0xc00c276260)\n\t/home/runner/go/pkg/mod/github.com/!cosm!wasm/wasmd@v0.50.0/x/wasm/types/tx.pb.go:2266 +0x135\ngithub.com/cosmos/cosmos-sdk/baseapp.(*MsgServiceRouter).registerMsgServiceHandler.func2({{0x3c3f5f8, 0x5aefe00}, {0x3c5b680, 0xc00c251a80}, {{0x0, 0x0}, {0xc002301700, 0x9}, 0x0, {0x0, ...}, ...}, ...}, ...)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/msg_service_router.go:198 +0x363\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runMsgs(, {{0x3c3f5f8, 0x5aefe00}, {0x3c5b680, 0xc00c251a80}, {{0x0, 0x0}, {0xc002301700, 0x9}, 0x0, ...}, ...}, ...)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:1009 +0x1e6\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).runTx(0xc0015fc480, 0x2, {0xc000cd1980, 0x168, 0x180})\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/baseapp.go:947 +0x116c\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).Simulate(...)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/test_helpers.go:28\ngithub.com/cosmos/cosmos-sdk/x/auth/tx.txServer.Simulate({{{0x0, 0x0, 0x0}, {0x3c637a0, 0xc005c0aa50}, 0x0, {0xc000a33d30, 0x9}, {0x3c7d068, 0xc000ec39b0}, ...}, ...}, ...)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/x/auth/tx/service.go:98 +0x129\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler.func1({0x3c40058, 0xc00cee2300}, {0x31ed560?, 0xc00c209580})\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/types/tx/service.pb.go:1443 +0x72\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func1({0x3c40058, 0xc00c0ed500}, {0x31ed560, 0xc00c209580}, 0xc00c2095a0?, 0xc00cf49d58)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/grpcserver.go:70 +0x458\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.func2.1({0x3c40058?, 0xc00c0ed500?}, {0x31ed560?, 0xc00c209580?})\n\t/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/chain.go:48 +0x45\ngithub.com/grpc-ecosystem/go-grpc-middleware/recovery.UnaryServerInterceptor.func1({0x3c40058?, 0xc00c0ed500?}, {0x31ed560?, 0xc00c209580?}, 0xc00cf49d58?, 0x0?)\n\t/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/recovery/interceptors.go:33 +0xb0\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2.ChainUnaryServer.func2({0x3c40058, 0xc00c0ed500}, {0x31ed560, 0xc00c209580}, 0xc00c2095a0, 0x414645?)\n\t/home/runner/go/pkg/mod/github.com/grpc-ecosystem/go-grpc-middleware@v1.4.0/chain.go:53 +0x135\ngithub.com/cosmos/cosmos-sdk/types/tx._Service_Simulate_Handler({0x31b7ac0?, 0xc00099ad20}, {0x3c40058, 0xc00c0ed500}, 0xc00c0ca600, 0xc00c0ed530)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/types/tx/service.pb.go:1445 +0x135\ngithub.com/cosmos/cosmos-sdk/baseapp.(*BaseApp).RegisterGRPCServer.func2({0x31b7ac0, 0xc00099ad20}, {0x3c40058, 0xc00c0ed500}, 0x32c7180?, 0xc00c0898c0?)\n\t/home/runner/go/pkg/mod/github.com/cosmos/cosmos-sdk@v0.50.5/baseapp/grpcserver.go:84 +0x112\ngoogle.golang.org/grpc.(*Server).processUnaryRPC(0xc00157fa00, {0x3c40058, 0xc00c0ed470}, {0x3c578c0, 0xc006737040}, 0xc00c0898c0, 0xc0066fea20, 0xc00520cee0, 0x0)\n\t/home/runner/go/pkg/mod/google.golang.org/grpc@v1.62.0/server.go:1383 +0xe03\ngoogle.golang.org/grpc.(*Server).handleStream(0xc00157fa00, {0x3c578c0, 0xc006737040}, 0xc00c0898c0)\n\t/home/runner/go/pkg/mod/google.golang.org/grpc@v1.62.0/server.go:1794 +0x100c\ngoogle.golang.org/grpc.(*Server).serveStreams.func2.1()\n\t/home/runner/go/pkg/mod/google.golang.org/grpc@v1.62.0/server.go:1027 +0x8b\ncreated by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 1207\n\t/home/runner/go/pkg/mod/google.golang.org/grpc@v1.62.0/server.go:1038 +0x135\n: panic","time":"2024-04-05T20:45:26Z","message":"panic recovered in runTx"}
Paloma and pigeon versions and logs

Section description
Write down paloma version.
Write down pigeon version.
Copy and paste pigeon config file as well as relevant ENV variables.

{WRITE YOUR ANSWER HERE}
Paloma
How to reproduce?

Section description
Please write detailed steps of what you were doing for this bug to appear.

What is the expected behaviour?

Section description
If you know, please write down what is the expected behaviour. If you don't know, that's ok. We can have a discussion in comments.

Cosmwasm time must be properly set in all contracts whose state is validated.

Fixed with https://github.com/palomachain/paloma/pull/1132

oberseved again with https://github.com/orgs/VolumeFi/projects/4/views/5?pane=issue&itemId=61805054

@verabehr let's put a tracking ticket in Volume for this one.

This could no longer be produced locally or on the lcd mainnet machine
I did see a Block (unix) time must never be empty or negative error at first, but it only happened when the address book was empty. After copying the mainnet address book, it started normally


Bug in escape_string: only the first occurrence of single quotes are escaped

The escape_string(nn) function escapes single quotes by doubling them:
https://github.com/veg/phylotree.js/blob/35ec8078acb6d31200be2adc72f658521bb1e9cf/src/main.js#L1106-L1110
Unfortunately, String.replace with a string first argument only replaces the first occurrence of the provided string. This could be fixed by using regular expressions instead, e.g. nn.replace(/\'/g, "''").
Here's a JSFiddle showing what I mean: https://jsfiddle.net/eywraw8t/422467/

Dear @gaurav,
Great catch. Looks like @stevenweaver is gonna include the fix in the next release.
Best,
Sergei


Uncaught Error: Class 'minishlink\WebPush\WebPush' not found

Setup
PHP 7.2
Last version of webpush

Please check that you have installed and enabled these PHP extensions :

gmp, mbstring, curl, openssl are all enabled

Please select any browsers that you are experiencing problems with:

All browsers

Please specify the versions (i.e. Chrome Beta, Firefox Beta etc).

All versions
I get the following error message: Fatal error: Uncaught Error: Class 'Minishlink\WebPush\Subscription' not found in ...
when using this code:
use Minishlink\WebPush\WebPush;
use Minishlink\WebPush\Subscription;
// array of notifications
$notifications = [
[
'subscription' => Subscription::create([
'endpoint' => $endpoint, // Firefox 43+,
'publicKey' => $publicKey, // base 64 encoded, should be 88 chars
'authToken' => $authToken, // base 64 encoded, should be 24 chars
]),
'payload' => 'hello !',
]
];
I have installed the package with composer and i see all files in the directory:
Encryption.php
MessageSentReport.php
Notification.php
Subscription.php
SubscriptionInterface.php
Utils.php
VAPID.php
WebPush.php
I have seen someone with the same error message in the list of issues here but in his case there was a file missing which is not my case.
Any idea?
Thanks

Hi
Same problem for me with 6.0 version

Hi,
I spent over 12 hours looking for solutions ☹
This is how i solve this issue, maybe it is not the best way but it worked for me :

delete composer.lock file
remove all the packages from composer.json except minishlink/web-push-php
run composer install
add the other package in composer.json
run composer update

This idea came to me after testing web-push-php in a new project composer and seeing that it worked fine.
Hope it will help someone 😊


[AIRFLOW-1206] Typos

Dear Airflow maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-1206

Description

[x] Here are some details about my PR, including screenshots of any UI changes:

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason: docs

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

(just a few typos didn't think creating a ticket etc was necessary)

@benrudolph, please create a ticket for that. Thanks.

@skudriashev updated

guessing test failures are unrelated

LGTM

these are still typos in the documentation, think we can merge?


Add support for Django 2.1

Hmm. This doesn't quite work. More to do!

(It worked with my test project, but that was because I didn't have any template coverage in my tests ;)


Incompatibility with latest LTN version

The latest LTN version has, at my request, standardized the names of API information to match Factorio's scheme. This will break LTN Manager significantly. An update will be out later today.
I'm making this issue so nobody reports it as a bug. Sit tight for a few hours and I'll have a patch out!

UPDATE: the patch has been released. I will close this issue tomorrow morning.

I'm getting the lamp_control nil index error on multiplayer but not single player using LTN 1.13.1 and LTNManager 0.1.8 (same game save)
re:
2020/04/17 07:26:47 Factorio Server: Error while running event LtnManager::on_tick (ID 0)
2020/04/17 07:26:47 Factorio Server: LtnManager/scripts/data-manager.lua:64: attempt to index field 'lamp_control' (a nil value)
2020/04/17 07:26:47 Factorio Server: stack traceback:
2020/04/17 07:26:47 Factorio Server:    LtnManager/scripts/data-manager.lua:64: in function 'iterate_stations'
2020/04/17 07:26:47 Factorio Server:    LtnManager/scripts/data-manager.lua:412: in function 'handler'
2020/04/17 07:26:47 Factorio Server:    RaiLuaLib/lualib/event.lua:127: in function <RaiLuaLib/lualib/event.lua:28>
save: https://www.dropbox.com/s/29yx2udpv7w7ovd/Autosaved Recover NEW.zip?dl=0

Got it... I forgot to add code to reset the LTN data iteration when mod configuration changes. It was trying to process data given by the previous version of LTN. So now, it'll completely stop iterating data and reset when mod configuration changes.
An update will be out shortly with the fix!


Arch not starting after changing the path of the folder

When I double click on my arch.exe a terminal start and close instantly.
I have installed arch and used it, but my folder was big so I decided to move to another disk.
When I wanted to start arch got an error (that he can't find the Arch.exe to the old path) and it tells me that he will change the path of the new installation.
But when I wanted to start my Arch again got the error and if I move my folder to the old path I got the same error.
It should have change the path of the new installation and worked again.
https://i.imgur.com/CTCl6nQ.gifv
Environment:

Microsoft Windows [version 10.0.18363.815]
Windows Security disabled
WSL1
ArchWSL version <IP_ADDRESS>
version 20040300

The distro cannot be moved to another disk.
WSL1 uses the extended attributes of the file system, which a normal copy(= move across disk) loses.

Ok but now I moved the folder where it was before but got the same problem. Is there any way to fix it ?

Unfortunately, extended attributes have been lost by copying, so I think it's difficult to fix.


Strip metadata from images

Exif etc.

+1, would be interested to see documentation on how lwip handles metadata, flags for stripping, etc.

I'm not sure exactly what you mean. If you mean parsing EXIF data, please see #100.

This topic deserves to be documented. I don't know much about image processing so I can't figure out which library and how should I use together with lwip.


filter-pypi-responses: stream package requests that hit the proxy

mitmproxy was buffering all requests (except pythonhosted.*), causing pip to time out when getting big packages from custom URLs.
Setting flow.response.stream in the responseheaders hook fixes this.

Good catch, thanks @yorickvP!
In many cases where it isn't important to make the locking itself reproducible, as repeatable builds from the lockfiles are sufficient it's also possible to just disable to disable the proxy alltogether with pypiSnapshotDate = null.


Added function search_documents_by_metadata for Pinecone vectorstore

Hi guys,
I've been working on a new feature that I believe could be a great addition to the Langchain project. It's a function designed to simplify document searches based on metadata within Pinecone. The idea is to simply pass in the metadata, and the function will take care of creating the necessary filters for us. You can also give in your own filters.
I realize this might seem a bit abstract without a practical demonstration, so if you think it would be helpful, I'd be more than happy to whip up a Jupyter notebook.
Please feel free to let me know your thoughts on this, and if there's anything specific you'd like me to cover in the notebook if we decide to go that route.
Thank you for the great work.

Tag maintainer: @rlancemartin @eyurtsev
Twitter handle: @ET_TheDev

isnt this already done by SelfQueryRetrieval?


BFF: Inject WebApp API KEY and userId on requests to the Ethereal Server

Draft: when remix.js client request a bff endpoint, use some global configuration interceptor/middleware related to remix.js for implements when necessary  requests data for Server API, always inject the exclusive Web app API Key and userID in the header

@danielfernandes2022  Turns out the server part is already being done by @almeiphi.
Because of this I have assign you to this task instead, but I will also try to solve it on my side. We can then exchange knowledge on how to better implement this.


cynthia doesn't work in FL Stuido 32bit ,But works well in 64bit .

Could you fix the bug ,I don't have the ability to fix it.

32bit version of Cynthia Micro working in FL Studio 32bit + Win7 64bit here, Using Version 6 according to the Itch.io download description, the version uploaded January ~23rd.  No apparent issues.


Add button for run multiple tasks on GMaven Tool Window

Button will visible only if selected two or more tasks, else it will hidden(so as not to overload the window with buttons)
If selected one task then simple perform left button mouse click. (Green play button)

Will available since 233.28 version

Added in 233.28


Missing Plist Keys

I just uploaded a build to apple and the validator returned errors that CFBundleVersion and CFBundleShortVersionString were missing in libsndfile and csoundlib plist files.

Did you grab the latest develop branch?  I think Stephane might have fixed this?

https://github.com/audiokit/AudioKit/commit/204c9cbee0e63036a074e962e8a02b2f7ffd8e67

Yes that's it, I should've checked the develop branch.


Q on 'imported from' IAO_0000412

From<EMAIL_ADDRESS>on January 05, 2015 14:25:37
http://purl.obolibrary.org/obo/IAO_0000412 "For external terms/classes, the ontology from which the term was imported"
What does 'external' mean, how should the ontology be referenced (e.g. IRI vs versionIRI) and what does 'imported' mean? Also, the def implies this is restricted to classes, why?
Is this intended as a functional property (can't be specified for APs in OWL2 but we could add something to IAO to state this)
How does this relate, if at all, to rdfs:isDefinedBy?
The use of 'imports' conflicts with owl:imports in cases where this property is used, e.g.: http://www.ontobee.org/browser/rdf.php?o=OBI&iri=http://purl.obolibrary.org/obo/CL_0000236 obi.owl does not stand in an owl:imports to cl.owl, so this is confusing.
Tentative proposal:
We use rdfs:isDefinedBy to denote the authority for an OWLObject (fulfilling the need that is currently filled by using the ID space). We have a local restriction that this is functional (i.e. no class is "jointly owned"). We can also map the OBO-Format "namespace" tag (which is not an OWL/RDF namespace) to this property (somewhat awkward as historically there are 3 "namespaces" for GO).
If required, we have separate properties for clear semantics such as "axioms copied from" where we have axioms (logical and non-logical) copied from one ontology to another (as is the case for cl in obi)
Original issue: http://code.google.com/p/information-artifact-ontology/issues/detail?id=176

From<EMAIL_ADDRESS>on January 06, 2015 08:23:24
Consider obsoleting this. A term is imported when it is not defined by the authority that is creating the ontology(into which it is being imported).

From<EMAIL_ADDRESS>on January 06, 2015 08:32:01
So the idea is that we instead use explicit rdfs:isDefinedBy axioms?


Display the player stalking better

Currently the player stalking looks like a big mess, do this before doing #34

Can also probably add the time of their pb since it's downloaded anyway

because we have time until next tscc pushing back to v1.6.2


Investigate performance issues with loading OpenAPI data

Apparently, now that we have fairly complete OpenAPI documentation for every aspect of the Zulip API (#16000), we're now seeing a performance problem the first time one loads on a given server process.  (Server logs show 5s load times for random /api pages until all the uwsgi worker processes have loaded zulip.yaml into memory).
@orientor @eeshangarg FYI.  This is a high priority to investigate, ideally using profiling, as we might need to do significant restructuring of how we handle the OpenAPI files if there isn't an easy fix to this.
(E.g. one could imagine rather than reading from the live zulip.yaml, that we have a update-prod-static or webpack step to generate rendered markdown files from zulip.yaml so that this only happens once and not when serving life requests).

Here’s a dramatic observation: it takes a full second just to parse the YAML, compared to the two milliseconds it would take to parse the same data from JSON.
In [2]: %timeit yaml.safe_load(pathlib.Path('zulip.yaml').read_bytes())
981 ms ± 3.01 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [3]: %timeit json.loads(pathlib.Path('zulip.json').read_bytes())
2.16 ms ± 53.9 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [4]: %timeit orjson.loads(pathlib.Path('zulip.json').read_bytes())
1.8 ms ± 314 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

Yeah; is it possible we want that build step to be "Convert the YAML to JSON"?
(I think YAML features like the way we write descriptions might be painful in JSON, not to mention that the tedium of OpenAPI would be a lot more without yamole -- though I'd love to replace that if we can find a better solution).

If we could use the LibYAML C parser via yaml.CSafeLoader, we could reduce the YAML parsing time to 65 ms. Three problems are:

The pyyaml binary package on PyPI doesn’t come with LibYAML enabled, and it seems to be difficult to tell pip-tools to tell pip to pass the appropriate options to enable it via a requirements file.
yamole hard codes yaml.safe_load and provides no way customize the loader (or the dumper).
yaml.CSafeLoader rejects the unnecessary \/ escape sequences we have in a number of double-quoted strings.

These could potentially be solved. Not sure whether the rest of the processing after the YAML parsing could be made fast enough for this to be a useful approach.

#16069 solves the first problem if we merge it before #16063.

Merged #16069.

While investigating this I’ve found that everything yamole does is wrong. All it adds on top of yaml is incorrect $ref resolution (#16106) and incorrect allOf merging (#16109). We can use the faster jsonref library for correct $ref resolution, and allOf needs special treatment that simply can’t be done correctly in a pre-processing step like yamole.

Yeah, that doesn't surprise me.  yamole was added years ago when the OpenAPI specification was on an older version that had a lot of problems, so there was never deep examination of whether it's really necessary.
My preference would be to remove yamole from the pipeline just because it's unmaintained in any case; if we can do so without needing to duplicate a lot of content, then we should just do it.

yamole hard codes yaml.safe_load and provides no way customize the loader (or the dumper).

For this, we could easily fork yamole; it's effectively our own software.  It's probably worth doing that tweak?

Perhaps that would be worth considering if there was anything yamole did that was correct, but it literally does three things: 1. YAML parsing, inefficiently; 2. $ref resolution, incorrectly; 3. allOf merging, incorrectly and at a level where it can’t possibly work. That’s all. It doesn’t have a single line of code that we want.


Bug in bprop?

It seems to be a bug in nervanacpu backend in bprop_conv function line 1012:
                    array_grad_I[:, m, h, w, :] = alpha * \
                        np.dot(slicedF.T, slicedE)

It should be array_grad_I[:, d, h, w, :] = ..., I suppose.

Thanks for finding this bug. We have confirmed that your suggested fix is correct, and will include it in the next update.


Error compiling fragment shader for canvas_item / light

Godot version: 3.0.2
OS/device including version: Win10 / NVIDIA Geforce GTX1060, linux / NVIDIA Geforce 210
Issue description:
Adding light processor function to shader_type canvas_item causes GLES3 fragment compilation to fail with:
ERROR: ShaderGLES3::get_current_version: CanvasShaderGLES3: Fragment Program Compilation Failed:
0(282) : error C1008: undefined variable "shadow"
0(282) : error C1008: undefined variable "screen_uv"

Relevant shader code:
279: #if defined(USE_LIGHT_SHADER_CODE)
280: //light is written by the light shader
281:            light_compute(light,light_vec,light_height,light_color,light_uv,shadow,normal,uv,screen_uv,color);
282:
283: #else

Expected result: fragment shader compiles
First mentioned in #13927
Steps to reproduce:
In a scene with sprite and a light2d, create a shader material for a sprite and add a light processor function to a canvas_item shader. Error can be observed on the console:
Minimal reproduction project:
light-shader.zip
Open scene Sprite.tscn to see the error.

Seems to be fixed in current master as of 8d199a9b2

That was a duplicate of #16904, fixed by #17391 in the master branch and 3.0.3.


Parsing of the translate function calls in pages and refactoring of translate function

Motivation
A lot of code in pages uses javascript data structures like objects and arrays to store the data. Current logic allows to use translations only with <translate>text</translate> tag. Text that is stored in data structures isn't processed by translate plugin and plugin only processes JSX tags. I added logic that processes AST's CallExpression with name translate and adds translations to i18n/en.json the same way as JSXElement translate does.
Also I refactored translate function and added second optional argument description. It's much better to delegate the logic of preparing translation key with a description or nor to translate function and not to overload babel translate plugin by decision-making. Babel translate plugin just reads desc attribute from the translate tag and passes it to the translate function. So, the logic becomes much more straightforward.
If the translate function call is made without passing optional second argument (description) the default value is used (no description given). The same logic works for <translate> tag with/without description.
Usage.
Add the following require statement to the top of the page file (pages/en/index.js):
const translate = require("../../server/translate.js").translate;

Use translate function pages/en/index.js
<GridBlock
  align="center"
  contents={[
    {
      content: translate('My pretty new content'),
      title: translate('Translation with description', 'custom description')
    },
  ]}
  layout="threeColumn"
/>

Produces i18n/en.json with lines
// ...
  "pages-strings": {
    "My pretty new content|no description given": "My pretty new content",
    "Translation with description|custom description": "Translation with description",
   // ...
  }

write-translations.js skips translate calls with non-string arguments (not string literals like templates and expressions). The following code will not add keys to i18n/en.json
const str = 'string';

translate(`String`);
translate('string' + 'string');
translate(str);

Generator will output warnings and will suggest to fill strings with hands.
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan

I can add functional test to build-files.tests.js but I want to ask where to put <translate> tags and translate calls. As I see, website folder is used not only for tests but for a building of docusaurus.io and such insertions will add undesired functionality to boilerplate. Am I right?
string literals without description - translate('my pretty new content') succeeded. It generates

"My pretty new content|no description given": "My pretty new content"

string literals with descriptions - translate('my pretty new content', 'custom description') succeeded. It generates

"My pretty new content|custom description": "My pretty new content",

non-string literal as a key - translate(`my pretty new content`) fails. Output:

Skipping "translate" call in /path/Docusaurus/website/pages/en/index.js at line 99 when writing to /i18n/en.json. To enable autogeneration you must pass the string you want to translate as a string literal. Expressions and templates are ignored. You can still add desired strings to /i18n/en.json with your hands.

generate.js triggered...
feed.js triggered...
feed.js triggered...
sitemap.js triggered...

string literal as a key and non-string literal as a description - translate('my pretty new content', `custom description`) fails. Output:

Skipping "translate" call in /path/Docusaurus/website/pages/en/index.js at line 99 when writing to /i18n/en.json. To enable autogeneration you must pass description as a string literal. Expressions and templates are ignored. You can still add desired strings to /i18n/en.json with your hands.

generate.js triggered...
feed.js triggered...
feed.js triggered...
sitemap.js triggered...

more than 2 arguments - translate('arg1', 'arg2', 'arg3') fails. Output:

Skipping "translate" call in /path/Docusaurus/website/pages/en/index.js at line 99 when writing to /i18n/en.json. To enable autogeneration you must pass only 1 or 2 arguments that must be string literals. Expressions and templates are ignored. You can still add desired strings to /i18n/en.json with your hands.

generate.js triggered...
feed.js triggered...
feed.js triggered...
sitemap.js triggered...

Related PRs
Check the concept first, please. Then I add info to the docs and attach PRs.

@JoelMarcey  any news?

@WoZ Hey! I did a cursory look of this over the weekend. I plan to spend more time reviewing it this week (probably by Wed). I am going to get another release of Docusaurus out today, so this would probably go in the next one after that -- and releases can be quick one after the other. But I don't want to add major changes to the one I plan to push out today.

@JoelMarcey thank you for response. No problem. I just want to ask you to confirm such strategy. I see a lot of things to do with translations. Any steps that differs to described crowdin integration need to be explained and refactored. I see inconsistency in usage of translated_docs... So I'm ready to help but I want to understand plans and limitations.

@WoZ I like the approach of this. So let's keep moving on it. 👍
Re: adding a functional test, I definitely think we should do that. I suppose for now build-files.test.js is the right place for now. Although, a test specifically for translations might more sense long term.
I am in the middle of adding translations to the docusaurus.io site, which I want to finish in the next couple of weeks. So right now we don't have any <translate> tags at all.
In the meantime, maybe we can create dummy file in docs that is not directly accessible on the site (e.g., it won't go in the sidebar), it is just there to test translations for now. Unless you have a better suggestion?
But let's continue with your plan here. I think having the test in this PR would be good, along with docs. What do you think?

@JoelMarcey generally, I think that splitting tests to unit and functional is a good idea. Right now build-files.test.js cover our needs, so I can add tests to this file.
By creation of a file in docs we will cover only translated_docs logic. How do you suggest to test translate function call? I can add this test in pages/en/ and check that test string appears in en.json. It may be index.js or new unused file just for test purposes. What fo you think?

@JoelMarcey absolutely :thumbsup:

@yangshun hi! I'm on the way!

Hey @WoZ, how is it going? I'm closing this first and we can reopen this when you have the time. If you would not be available to fix this, just let us know and we can take over 😄


Add parameter Overloads configuration to extension annotation

Purpose

$subject...

 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.

Codecov Report

Merging #1356 into master will decrease coverage by 0.58%.
The diff coverage is 96.15%.

@@             Coverage Diff             @@
##             master   #1356      +/-   ##
===========================================
- Coverage     61.09%   60.5%   -0.59%
  Complexity       37      37
===========================================
  Files           632     632
  Lines         26434   26458      +24
  Branches       4174    4183       +9
===========================================
- Hits          16149   16009     -140
- Misses         8967    9068     +101
- Partials       1318    1381      +63

Impacted Files
Coverage Δ
Complexity Δ

...cremental/CountIncrementalAttributeAggregator.java
100% <ø> (ø)
0 <0> (ø)
:arrow_down:

...y/processor/stream/window/CronWindowProcessor.java
81.37% <ø> (ø)
0 <0> (ø)
:arrow_down:

.../processor/stream/window/BatchWindowProcessor.java
73.49% <ø> (-2.41%)
0 <0> (ø)

...e/executor/function/CreateSetFunctionExecutor.java
60% <ø> (-10%)
0 <0> (ø)

...main/java/io/siddhi/core/util/SiddhiConstants.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...regator/MinForeverAttributeAggregatorExecutor.java
37.5% <ø> (-3.85%)
0 <0> (ø)

...cutor/function/InstanceOfLongFunctionExecutor.java
62.5% <ø> (-25%)
0 <0> (ø)

...ssor/stream/window/LengthBatchWindowProcessor.java
86.36% <ø> (-6.07%)
0 <0> (ø)

...ator/DistinctCountAttributeAggregatorExecutor.java
58.06% <ø> (ø)
0 <0> (ø)
:arrow_down:

.../executor/function/IfThenElseFunctionExecutor.java
68% <ø> (-12%)
0 <0> (ø)

... and 83 more

Continue to review full report at Codecov.

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


InvalidSpec: The package "nvidia/linux-64::cuda-compiler==12.5.0=0" is not available for the specified platform

I just encountered the error written  in the title.
InvalidSpec: The package "nvidia/linux-64::cuda-compiler==12.5.0=0" is not available for the specified platform
I have installed AF in several computers all of them running the same AlmaLinux installed in the same way. Never had a problem.
but today I found that line at the end.
In the midle of the screen output I can see this:
ERROR [ 5/12] RUN conda install -qy conda==24.1.2 pip python=3.11     && conda install -y -c nvidia cuda=12.2.2     && conda install -y -c conda-forge openmm=8.0.0 pdbfixer     && conda clean --all --force-pkgs-dirs --yes    269.9s
this is what I executed:
git clone https://github.com/deepmind/alphafold.git
cd alphafold/
docker build -f docker/Dockerfile -t alphafold .

I believe that this is the first time that I execute the docker build before downloading the DBs, could it be related?

I see the same problem on multiple machines running Ubuntu 22.04 LTS. This worked fine a week ago so something has changed and for some reason it is looking for CUDA 12.5.0 despite the dockerfile having:
ARG CUDA=12.2.2
FROM nvidia/cuda:${CUDA}-cudnn8-runtime-ubuntu20.04
FROM directive resets ARGS, so we specify again (the value is retained if
previously set).
ARG CUDA
Also tried with
ARG CUDA=12.2.2
FROM nvidia/cuda:${CUDA}-cudnn8-devel-ubuntu22.04
FROM directive resets ARGS, so we specify again (the value is retained if
previously set).
ARG CUDA
Same issue.

Looks like the problem is related to the openmm step of the install. Splitting the Dockerfile as:
Install conda packages.
ENV PATH="/opt/conda/bin:$PATH"
ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"
RUN conda install -qy conda==24.1.2 pip python=3.11
RUN conda install -y -c nvidia cuda=${CUDA_VERSION}
RUN conda install -y -c conda-forge openmm=8.0.0
RUN conda install -y -c conda-forge pdbfixer
RUN conda clean --all --force-pkgs-dirs --yes
Dies at the openmm step.
Attempting to explicitly tell it to install openmm=8.0.0 with cudatoolkit 12.2.2 (${CUDA_VERSION}), per http://docs.openmm.org/latest/userguide/application/01_getting_started.html also doesn't work - it seems to just ignore the specific cudatoolkit version request.
ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"
RUN conda install -qy conda==24.1.2 pip python=3.11
RUN conda install -y -c nvidia cuda=${CUDA_VERSION}
RUN conda install -y -c conda-forge openmm=8.0.0 cudatoolkit=12.2.0
RUN conda install -y -c conda-forge pdbfixer
RUN conda clean --all --force-pkgs-dirs --yes
=> CACHED [ 6/16] RUN conda install -y -c nvidia cuda=12.2.2                                                                                0.0s
=> ERROR [ 7/16] RUN conda install -y -c conda-forge openmm=8.0.0 cudatoolkit=12.2.0                                                                            8.5s

[ 7/16] RUN conda install -y -c conda-forge openmm=8.0.0 cudatoolkit=12.2.0:
0.306 /bin/bash: /opt/conda/lib/libtinfo.so.6: no version information available (required by /bin/bash)
0.907 Channels:
0.907  - conda-forge
0.907  - defaults
0.907  - nvidia
0.907 Platform: linux-64
0.907 Collecting package metadata (repodata.json): ...working... done
8.266 Solving environment: ...working... failed
8.322
8.322 InvalidSpec: The package "nvidia/linux-64::cuda-compiler==12.5.0=0" is not available for the specified platform
8.322

Dockerfile:59
57 |     RUN conda install -qy conda==24.1.2 pip python=3.11
58 |     RUN conda install -y -c nvidia cuda=${CUDA_VERSION}
59 | >>> RUN conda install -y -c conda-forge openmm=8.0.0 cudatoolkit=12.2.0
60 |     RUN conda install -y -c conda-forge pdbfixer
61 |     RUN conda clean --all --force-pkgs-dirs --yes
ERROR: failed to solve: process "/bin/bash -o pipefail -c conda install -y -c conda-forge openmm=8.0.0 cudatoolkit=12.2.0" did not complete successfully: exit code: 1
Seems like something is broken in anaconda itself? Or conda-forge?

So manually specifying the version of all the various related packages works around the NVIDIA / conda versioning bug and actually allows one to build alphafold2 properly. So until someone actually fixes the issue with the conda solver just edit your dockerfile and change
ENV PATH="/opt/conda/bin:$PATH"
ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"
RUN conda install -qy conda==24.1.2 pip python=3.11 \
    && conda install -y -c nvidia cuda=${CUDA_VERSION} \
    && conda install -y -c conda-forge openmm=8.0.0 pdbfixer \
    && conda clean --all --force-pkgs-dirs --yes

to
# Install conda packages.
ENV PATH="/opt/conda/bin:$PATH"
ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"
RUN conda install -qy conda==24.5.0 pip python=3.11 \
 && conda install -y -c nvidia cuda=12.2.2 cuda-tools=12.2.2 cuda-toolkit=12.2.2 cuda-version=12.2 cuda-command-line-tools=12.2.2 cuda-compiler=12.2.2 cuda-runtime=12.2.2
RUN conda install -y -c conda-forge openmm=8.0.0 pdbfixer \
    && conda clean --all --force-pkgs-dirs --yes

WORKED!
thank you very much
One question rising from my ignorance:
in the original file, at the beginning "$CUDA" variable is defined, but in the original line where cuda is installed the variable $CUDA_VERSION is used, which has not been defined anywhere, but it works docker executes "conda install -y -c nvidia cuda=12.2.2". Where does this variable come from? when was defined? why use $CUDA_VERSION and not $CUDA ?

(cuda_env) ubuntu@ip-172-31-71-33:/$ conda install -c nvidia cuda-compiler=12.5.0
Channels:

nvidia
conda-forge
defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: failed

InvalidSpec: The package "nvidia/linux-64::cuda-compiler==12.5.0=0" is not available for the specified platform
I'm encountering the same issue. I followed the suggestion from Ross Walker's comment and managed to successfully create a Docker image. However, when I attempt to run the prediction, it doesn't produce any output. I've logged the command, and here's the content of the log file:
I0615 05:26:32.780370<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/input -> /mnt/fasta_path_0
I0615 05:26:32.780579<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/uniref90 -> /mnt/uniref90_database_path
I0615 05:26:32.780725<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/mgnify -> /mnt/mgnify_database_path
I0615 05:26:32.780841<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data -> /mnt/data_dir
I0615 05:26:32.780938<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/pdb_mmcif/mmcif_files -> /mnt/template_mmcif_dir
I0615 05:26:32.781038<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/pdb_mmcif -> /mnt/obsolete_pdbs_path
I0615 05:26:32.781960<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/pdb70 -> /mnt/pdb70_database_path
I0615 05:26:32.782088<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/uniref30 -> /mnt/uniref30_database_path
I0615 05:26:32.782209<PHONE_NUMBER>77120 run_docker.py:122] Mounting /data/af_download_data/bfd -> /mnt/bfd_database_path
I0615 05:26:33.179164<PHONE_NUMBER>77120 run_docker.py:264] /bin/bash: /opt/conda/lib/libtinfo.so.6: no version information available (required by /bin/bash)
I0615 05:26:36.904992<PHONE_NUMBER>77120 run_docker.py:264] I0615 05:26:36.904258<PHONE_NUMBER>84800 templates.py:858] Using precomputed obsolete pdbs /mnt/obsolete_pdbs_path/obsolete.dat.
I0615 05:26:36.907782<PHONE_NUMBER>77120 run_docker.py:264] E0615 05:26:36.907423<PHONE_NUMBER>84800 jackhmmer.py:75] Could not find Jackhmmer database /mnt/uniref90_database_path/uniref90.fasta
I0615 05:26:36.907939<PHONE_NUMBER>77120 run_docker.py:264] Traceback (most recent call last):
I0615 05:26:36.908035<PHONE_NUMBER>77120 run_docker.py:264] File "/app/alphafold/run_alphafold.py", line 570, in
I0615 05:26:36.908140<PHONE_NUMBER>77120 run_docker.py:264] app.run(main)
I0615 05:26:36.908221<PHONE_NUMBER>77120 run_docker.py:264] File "/opt/conda/lib/python3.11/site-packages/absl/app.py", line 312, in run
I0615 05:26:36.908318<PHONE_NUMBER>77120 run_docker.py:264] _run_main(main, args)
I0615 05:26:36.908392<PHONE_NUMBER>77120 run_docker.py:264] File "/opt/conda/lib/python3.11/site-packages/absl/app.py", line 258, in _run_main
I0615 05:26:36.908481<PHONE_NUMBER>77120 run_docker.py:264] sys.exit(main(argv))
I0615 05:26:36.908572<PHONE_NUMBER>77120 run_docker.py:264] ^^^^^^^^^^
I0615 05:26:36.908645<PHONE_NUMBER>77120 run_docker.py:264] File "/app/alphafold/run_alphafold.py", line 486, in main
I0615 05:26:36.908759<PHONE_NUMBER>77120 run_docker.py:264] monomer_data_pipeline = pipeline.DataPipeline(
I0615 05:26:36.908886<PHONE_NUMBER>77120 run_docker.py:264] ^^^^^^^^^^^^^^^^^^^^^^
I0615 05:26:36.909015<PHONE_NUMBER>77120 run_docker.py:264] File "/app/alphafold/alphafold/data/pipeline.py", line 130, in init
I0615 05:26:36.909125<PHONE_NUMBER>77120 run_docker.py:264] self.jackhmmer_uniref90_runner = jackhmmer.Jackhmmer(
I0615 05:26:36.909199<PHONE_NUMBER>77120 run_docker.py:264] ^^^^^^^^^^^^^^^^^^^^
I0615 05:26:36.909268<PHONE_NUMBER>77120 run_docker.py:264] File "/app/alphafold/alphafold/data/tools/jackhmmer.py", line 76, in init
I0615 05:26:36.909338<PHONE_NUMBER>77120 run_docker.py:264] raise ValueError(f'Could not find Jackhmmer database {database_path}')
I0615 05:26:36.909404<PHONE_NUMBER>77120 run_docker.py:264] ValueError: Could not find Jackhmmer database /mnt/uniref90_database_path/uniref90.fasta
Can anyone guide me on how to fix this issue?

I0615 05:26:36.909404<PHONE_NUMBER>77120 run_docker.py:264] ValueError: Could not find Jackhmmer database /mnt/>uniref90_database_path/uniref90.fasta

Can anyone guide me on how to fix this issue?

This looks like you are missing the necessary data files. Did you run the scripts/download_all_data.sh script and did it complete successfully?

Yes all databases are downloaded. I can see the files in data directory. When I run the prediction command am getting the jackhmmer database couldn't find.

Hi again
just installed AF today exactly as I previously described and I found the same error.
Using the modified dockerfile provided by @rosswalker  worked (again).
Is this issue not going to be solved in the main branch? or there is something more in my side that I fail to see?

ive been trying to solve this for the last 6 hours and rosswalker's suggestion worked.
Can't say i know exactly what the issue is, but I will point out that I noticed openmm has a cuda dependency of version <12. Not sure if that is related. I did try reducing the CUDA arg to 11.6.1 and that did not work.

WORKED! thank you very much One question rising from my ignorance: in the original file, at the beginning "$CUDA" variable is defined, but in the original line where cuda is installed, the variable $CUDA_VERSION is used, which has not been defined anywhere, but it works, docker executes "conda install -y -c nvidia cuda=12.2.2". Where does this variable come from? when was defined? why use $CUDA_VERSION and not $CUDA ?

The ${CUDA_VERSION} is referencing an environment variable in the image that must have been set by one of the previous commands.

So manually specifying the version of all the various related packages works around the NVIDIA / conda versioning bug and actually allows one to build alphafold2 properly. So until someone actually fixes the issue with the conda solver just edit your dockerfile and change
ENV PATH="/opt/conda/bin:$PATH"
ENV LD_LIBRARY_PATH="/opt/conda/lib:$LD_LIBRARY_PATH"
RUN conda install -qy conda==24.1.2 pip python=3.11 \
    && conda install -y -c nvidia cuda=${CUDA_VERSION} \
    && conda install -y -c conda-forge openmm=8.0.0 pdbfixer \
    && conda clean --all --force-pkgs-dirs --yes

to
# Install conda packages.
 Thank you sir!

You can resolve the issue by updating the code as follows:
RUN conda install -qy conda==24.5.0 pip python=3.11 \
  && conda install -y -c nvidia/label/cuda-${CUDA} cuda \
  && conda install -y -c conda-forge openmm=8.0.0 pdbfixer \
  && conda clean --all --force-pkgs-dirs --yes

It seems that there is an issue with version tracking in the conda repository. The problem was resolved by explicitly specifying the version.

Using the labeled nvidia cuda channels suggested by @jung-geun worked like a charm for me. Also the CUDA variable was named CUDA_VERSION in the Dockerfile


Update vue-core vitest configuration and sonar properties for front

fix https://github.com/jhipster/jhipster-lite/issues/10822

@pascalgrimaud I added tests for HomeRouter #10835 but if it is unused qou can close the PR


Add methods to UInt128 for explicit overflow control

Fixes #850

Nice start. Could you add tests for the newly added functions?
I think the best way to handle the operator implementation is deperate it and ask users to use the explicit methods.

added tests
change the Add operator to return Result.

All suggestions are fixed, other than deprecating Sub operator, which seems don't work: https://github.com/rust-lang/rust/issues/39935

Thank you.
Regarding

All suggestions are fixed, other than deprecating Sub operator, which seems don't work: rust-lang/rust#39935

and

Only open question seems to be whether to remove Sub or leave it. I'm fine with both, but lean towards removing it.

Let's remove the implementation. It is better to break the code from compiling than changing the implementation. Then we can wait a couple of releases and re-introduce a panicking - operator.

Let's remove the implementation. It is better to break the code from compiling than changing the implementation. Then we can wait a couple of releases and re-introduce a panicking - operator.

Done

I pushed a CHANGELOG entry for this PR to main: https://github.com/CosmWasm/cosmwasm/commit/fd4f9f40f3e3790b4d71b60ebd52bcdac0535aa9
Thank you!


Fix typo explaining conjunction

Fixes #1840

Thanks for catching this @brettwillis

Thank you for your contribution @brettwillis


osm-edge version update and added sub-command

Updated osm-edge version to 1.1.2
Added sub command for osm via plugins.

Also verify you have:

[X] Read the contributions page.
[X] Submitted the CLA form, if you are a first time contributor.

Thank you for this PR @naqvis and apologies for the late reply. We will review it as soon as we can. Either way this will work will be released with the v1.26 MicroK8s, at the beginning of December.

LGTM +1 thank you @naqvis


We need application sample working in system tray

Such application could be useful for testing taskbar module.

How about making it in Python like that: http://www.brunningonline.net/simon/blog/archives/SysTrayIcon.py.html ?

Nice idea. Will make a comment about that in the first version of test_taskbar.py I'm working on.

A sample app added in 3faeb2c32ccc6a33a936ba1f5b792dce83705e5f, basic tests added in 9e51b0f5d1102d1875ef2e1702d8eff510c522be and 52ba38c6df63204e7da83a4d3b68769594d6bb5f


Rename narrow.js library.

Related issue #23812
discussion: https://chat.zulip.org/#narrow/stream/6-frontend/topic/Renaming.20narrow.2Ejs.20library.2E

lgtm aside from that note. I think we might find ourselves doing another round of naming improvements in this area in a year, but this seems like good progress.

Merged some things that merge conflict with this.

Fixed the conflicts from #29211 and pushed.

Merged, thanks @amanagr!
This will probably cause a few merge conflicts.


Expiration: computing?

It looks like the new api

#3500

has broke our expirations estimates:
https://beta.kodadot.xyz/bsx/incomingoffers/
https://deploy-preview-3500--koda-nuxt.netlify.app/bsx/incomingoffers/

still works in prod:
https://kodadot.xyz/bsx/incomingoffers

👋


fix(master): Remove credentials from action payloads after use

Credentials are only used to check if an action is authorized in the master and should not then be passed on to the reducer etc.
This contributes towards #227, because now credentials should not leak beyond the Master.onUpdate method and won’t end up for example in the game log.

Side note: I initially tried to tackle this in the reducer before realising it would be better to do this as early as possible. In the process, I worked a little on the typing around actions, which isn’t perfect yet, but in case it is of interest: https://github.com/nicolodavis/boardgame.io/compare/master...delucis:delucis/feat/improve-types
In general, are you planning to convert more of the source to Typescript?

@delucis Thanks!  Yes, I intend to convert everything to TypeScript so feel free to send me any types that you have added.

OK, cool, I’ll see what needs to be done to make these types more useable.


Termination of chain sync protocol (client side)

When chain-sync client is not interested in the other node's chain, the client throws ChainSyncClientException.ForkTooDeep.  Currently this shuts down whole node.
This exception should be handled, and shutdown down only one side of a full-duplex channel.
In this case we also need to change DNS subscription for that peer to avoid re-connecting to it to early.
This is related to #711.

It might depend on the precise exception (i.e., the constructor of ChainSyncClientException) whether we should be able to ever reconnect to the peer. For example, in case of adversarial behaviour, we should never reconnect. Other reasons to throw an exception might only be temporary, e.g., ForkTooDeep, which will not be a problem anymore when the peer catches up with our chain.

Why does it need to be an exception? Couldn't we have ForkTooDeep be a message in the protocol, ending in a terminal state?

@avieth That would work too for me, but I remember being told by Duncan to throw an exception instead. I didn't design the protocol, I just wrote an implementation :innocent:

It would work in all states but the case where a client received MsgAwaitReply, in which case it is the responder / server who keeps the agency, the client has no opportunity of sending a terminating message.

How about adding  a time limit to MustReply, so that the server has to respond with RollBackward, RollForward or NoData. Where the latter would hand over agency to the client if no new data was available after X seconds. Failing to handover agency would be a protocol violation and the bearer can be torn down.

@karknu I like your idea, @njd42 what's your opinion?

Requiring evidence of progress sounds like a good idea.
What is the current state transitions - i.e. are we currently insisting on a "NoData" or is that a new state?
Setting a timer means that we need to consider its duration - given that this is relate to blocks that is going to need to be 10's (to 100's) of seconds?

What is the current state transitions - i.e. are we currently insisting on a "NoData" or is that a new state?

That would be a new state transition from StNext StMustReply to StIdle giving chance the client to take an action, and giving the chance to send MsgDone. No new state.

Setting a timer means that we need to consider its duration - given that this is relate to blocks that is going to need to be 10's (to 100's) of seconds?

That's right it would be something in 10s to 100s, or maybe up to 60s - e.g. three slots should be enough to give back control to the client. We could make it even less, but then it will stress the network, which already might be under load.

We are really using this as a keep alive indication I think that 100s is fine - we will have timed it out before this point (if we wanted to use it - some alternative being use/sought) and this is a backstop position to ensure that the bearer will be torn down.

It would be useful to get a review of #578 (it's getting rusty, the PR number is pretty low, we are already in the >700 range :open_mouth: )

Is that a request to me marcin?

No, I wanted to ask @avieth on slack, but I got interrupted ...

Closing, it was decided throwing exceptions is the simplest approach.


Support proxied socket URL connections when running livereload from the command line. i.e. allow definition of a public socket URL.

What version of Livereload are you using?
0.9.1
What OS are you using?
debian
What web browser are you using? (Browser name and specific version please)
chrome Version 84.0.4147.135
Expected result
I am running livereload behind a proxy and and I want to be able to name my development URL which I am proxying to localhost: on the server. This appears possible by creating my own app using  "originalPath" property but there is no such documented equivalent when starting from the command line.  Do I need to write my own server to achieve this or is it possible from the command line but just not documented?
I have modified the script to remove the port the a proxy URI
  <script>
    let script = '<script src="https://' + (location.host || 'localhost').split(':')[0] +
    '/livereload/livereload.js?snipver=1"></' + 'script>';
    document.write(script);
    console.log(script);
  </script>

but the livereload.js is failing when it runs as its calling back to an unexposed port.
I need to set the socket URL of livereload to match my proxy.
Quick patch and test
I can fix the problem by adding a breakpoint to the LOC above and manually removing the port from the uri before execution to match my proxied address. Livereload then works until a page reload.
Actual result
Code fails on line 2169 in the browser livereload.js.
_createClass(Connector, [{
...
2169:  this.socket = new this.WebSocket(this._uri);
...
);
test fail: uri = wss://drupal894.syntapse.co.uk:35729/livereload
should be wss://drupal894.syntapse.co.uk/livereload
Steps to reproduce issue
running livereload with
livereload . -w 1000 -d -u true -e 'css,js,scss,html,twig'

(note this doesnt allow the configuration of a proxied socket URL so the client is calling back to the port).
configure nginx proxy as follows:
  #  proxy request for livereload.js on page load
  location ~ ^(\/livereload)(.+) {
    proxy_pass http://<IP_ADDRESS>:35729$2;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

  # proxy the socket connection direct to port
  location ~ ^(\/livereload)$ {
    proxy_pass http://<IP_ADDRESS>:35729;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
 }

Why is this important?
to be able to test this across a proxied connection to enable containerised parallel development on a single machine.

I want it to demonstrate livereload across a range of apps in multiple containers without exposing a single port or configuring multiple ports across apps.

@laurencefass This looks easy enough to expose this option. Adding it to the backlog.

@laurencefass Version 0.9.2 is out which adds CLI support for the -op or --originalPath option.


Update to 3.0.12

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


the update command doesn't allow to set the certificate

The authSettings object has a clientSecretCertificateThumbprint property, which is exposed by arm templates. It is also carried in the appsettings as WEBSITE_AUTH_CLIENT_SECRET_CERTIFICATE_THUMBPRINT.
This setting is missing from the CLI. If you try to set this setting from the appsetting command, you get the following error AppSetting with name 'WEBSITE_AUTH_CLIENT_SECRET_CERTIFICATE_THUMBPRINT' is not allowed.
It'd be nice to have an additional setting name clientSecretCertificateThumbprint so we can set it up programmatically, or something similar

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

ID: aeb196c8-e408-8563-26ba-5c3ae6e38c48
Version Independent ID: 5f150c9a-e142-2fd7-fe84-b298dc83fd02
Content: az webapp auth
Content Source: latest/docs-ref-autogen/webapp/auth.yml
Service: app-service-web
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Please use the upsettings command with --setting property which take a name value pair
Ex. az webapp config appsettings set -g MyResourceGroup -n MyUniqueApp --settings WEBSITE_NODE_DEFAULT_VERSION=6.9.1
See this for more details https://docs.microsoft.com/en-us/cli/azure/webapp/config/appsettings?view=azure-cli-latest#az-webapp-config-appsettings-set

thank you for your answer, it is the command I'm running with the setting name I provided in my first message and I'm getting the error message mentioned above.

How about the status of this issue?

move to S165.

move to S166.

@calvinsID might be good issue for you to start with.

@mkarmark like we chatted online - if you could take care of supporting this please. Thanks!


Refactor Drug Target Commons importer to use the API

The Drug Target Commons TSV we are currently using for import is very large (over 2GB) and takes a long time to download. This significantly increases the runtime of this importer.
We should instead refactor this importer to use their API. Documentation can be found here:
Api_documentation.pdf

Although the API is very slow, it might still be the only way to implement the DTC importer as an online importer since accessing the CSV programmatically seems to be blocked for AWS instances. We're waiting to hear back from the DTC folks to hopefully resolve that issue.


Directional property on LightmapGI node causes invalid pixels.

Tested versions
4.3.stable
System information
Godot v4.3.stable - Windows 10.0.22631 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2070 SUPER (NVIDIA; <IP_ADDRESS>70) - AMD Ryzen 9 7950X 16-Core Processor (32 Threads)
Issue description
Switching on directional lightmapping can lead to invalid pixels that when paired with autoexposure can completely corrupt the scene.
LightmapGI non-directional:

LightmapGI directional:

Directional with moved camera:

Steps to reproduce

Download project: https://github.com/perfoon/Abandoned-Spaceship-Godot-Demo
Enable autoexposure in the Hangar's world environment
Bake lightmap using OIDN (havent tested with JNLM)
Observe lack of artifacting
Bake lightmap with Directional enabled.
Observe massive bloom and severe artifacting when rotating camera.

Minimal reproduction project (MRP)
https://github.com/perfoon/Abandoned-Spaceship-Godot-Demo

I wonder if this is the same as https://github.com/godotengine/godot/issues/81556. We could be getting NaNs that get propagated by the auto exposure

I wonder if this is the same as #81556. We could be getting NaNs that get propagated by the auto exposure

Potentially, I'm getting some similar looking specular in some parts of the scene

https://github.com/godotengine/godot/pull/95888 doesn't seem to fix the issue completely on the MRP.

Probes also have negative-looking artifacts not present when Directional is disabled:

Directional OFF
Directional ON

Dynamic objects themselves look fine though, so maybe this is just an issue with the visualization.

but that PR still seems to struggle with baked light on alpha-tested materials. Baking with Directional enabled still creates a brighter overall lightmap with flickering occuring when Glow is enabled:

These look like banding artifacts that occur due to sampling the SH lightmap's lower hemisphere, which has negative colors.


🙌 unicode/emoji fix

Emoji fix.
Related PR: https://github.com/zeit/hyper/pull/740
Before:

After:

Amazing, @dotcypress 😌
We still need to fix the insertion, removal, and the behavior of more complex emojis:

cc @rauchg @rginda

@dotcypress this is amazing stuff

So, @dotcypress: I think the last thing we should do before merging is finding a way to add line-height: 1em to <x-row> if there's any emoji on the screen.
This is not the best solution in the world, but I think it's enough until we manage to fix line-height on hterm 👌

Ping @dotcypress @rauchg: should we merge as it is?

Yes. I'd love to fix the other issue (maybe @dotcypress has good ideas), but for now this is an improvement


Parquet fuzz tests (#1053)

Which issue does this PR close?
Closes #1053.
Rationale for this change
See ticket
What changes are included in this PR?
This extends the parquet fuzz tests to also tests nulls, dictionaries and row groups with multiple pages. Currently this runs into what appears to be a bug in the null handling for ArrowArrayReader. This is likely the same as in https://github.com/apache/arrow-datafusion/issues/1441 - I have temporarily switched back to ComplexObjectArrayReader to get the test to pass, and will look into a fix prior to marking this ready for review.
Are there any user-facing changes?
No, this only adds tests

Codecov Report

Merging #1110 (0baa151) into master (3dca969) will decrease coverage by 0.17%.
The diff coverage is 95.61%.

@@            Coverage Diff             @@
##           master    #1110      +/-   ##
==========================================
- Coverage   82.31%   82.14%   -0.18%
==========================================
  Files         168      168
  Lines       49420    49556     +136
==========================================
+ Hits        40681    40706      +25
- Misses       8739     8850     +111

Impacted Files
Coverage Δ

parquet/src/arrow/array_reader.rs
76.54% <50.00%> (-0.12%)
:arrow_down:

parquet/src/arrow/arrow_reader.rs
91.51% <98.11%> (+2.19%)
:arrow_up:

parquet/src/util/test_common/rand_gen.rs
82.69% <100.00%> (+0.87%)
:arrow_up:

parquet/src/arrow/arrow_array_reader.rs
62.46% <0.00%> (-15.41%)
:arrow_down:

parquet/src/file/serialized_reader.rs
94.37% <0.00%> (-0.60%)
:arrow_down:

arrow/src/datatypes/datatype.rs
66.38% <0.00%> (-0.43%)
:arrow_down:

arrow/src/util/display.rs
19.62% <0.00%> (-0.19%)
:arrow_down:

arrow/src/compute/kernels/comparison.rs
93.47% <0.00%> (+0.13%)
:arrow_up:

parquet/src/encodings/encoding.rs
93.71% <0.00%> (+0.19%)
:arrow_up:

... and 4 more

Continue to review full report at Codecov.

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

Thanks to @yordan-pavlov 's work on #1130 this now passes on master :tada:


Issue with relax.cem() function in R

cem version: 1.1.31
Python version:
Operating System:

Description
By running the relax.cem function, I received the error below (R code 1).
What I Did
I played with the 'perc' parameter, and found when it decreased to 0.6, I was able to get rid of the error.
I also tried to use different combination of covariates, for some of the combinations, there's no error.
The covariates included in the depression_2[,var2] includes treated, age, healthcare spending, number of doctor visits as well as some medical conditions (0/1). They were all coded as numeric variables.
Can someone please let me know what caused the error? it seems to me the covariates combinations may have some contribution (not sure how), and there might be something else. Any input will be greatly appreciated!! Thanks!
R code 1:
mat <- cem(treatment = "treated", data = depression_2[,var2],keep.all=TRUE )
mat_2 <- relax.cem(mat, depression_2[,var2],depth=1, perc=0.8 )
**Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
R code 2:
mat <- cem(treatment = "treated", data = depression_2[,var2],keep.all=TRUE )
mat_2 <- relax.cem(mat, depression_2[,var2],depth=1, perc=0.6 )

I think you might have the wrong package. Perhaps you were looking for this one?


More documentation around state (so we can fix ...ResourceAlreadyExistsException)

Hi guys,  thanks for SST.
I've been playing around with SST/ion for +3 weeks and it worked well until the weekend when everything broke... Now when I try to deploy to production I get +10 messages of ResourceAlreadyExistsException (DDB / Log Groups / IAM / etc  / etc), but everything was created from scratch with sst.
I don't have steps to reproduce it very well, but what I would like is a little bit more documentation on https://sst.dev/docs/state specially on how to restore the S3 state snapshot manually.

Refresh is not fixing it...

npx sst refresh
npx sst refresh --stage production

Under my  s3 state snapshot sst-state/snapshot/project/production I think I still have access to a valid state that I should be able to use (the size changed drastically, and I can see inside the jsons that after the size changed, the new files don't have outputs like the lambda urls):

I tried a few things to get the latest snapshot to my local, but it always end up rewritten. So I'm guessing I'm missing something else.
 Not sure but:

I was creating adhoc resources related to AWS SES and  EmailSetRules/etc... that I was gating to deploy only in production stage as I was seeing other issues.
I think I might had sst dev running while tried to deploy to production... and I might have also forced unlock as I was getting some issues.
I also moved from SST 3.3.3 to 3.3.27 trying to fix too many open-files issue from the file watcher (end up just restructuring the folders of my project).

Thanks

Can you also share some of these errors? It'll tell us which resources got orphaned. And might give some clues around what happened.

Thanks for looking into.
Sure I can share the logs, everything that can't be re-created seems to have the same issue.
Simple ddb resource created at the beginning shows the same issue:
  async run() {
    const table = new sst.aws.Dynamo("global", {
      fields: {
        pk: "string",
        sk: "string"
      },
      primaryIndex: { hashKey: "pk", rangeKey: "sk" }
    });
....

|  Error       global sst:aws:Dynamo → globalTable aws:dynamodb:Table
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating AWS DynamoDB Table (project-production-globalTable): operation error DynamoDB: CreateTable, https response error StatusCode: 400, RequestID: F1LTV4AURUU6U0E8CJQK4E6JBBVV4KQNSO5AEMVJF66Q9ASUAAJG, ResourceInUseException: Table already exists: project-production-globalTable<EMAIL_ADDRESS>|  Error       global sst:aws:Dynamo → globalTable aws:dynamodb:Table
|  DynamoDB: CreateTable, https response error StatusCode: 400, RequestID: F1LTV4AURUU6U0E8CJQK4E6JBBVV4KQNSO5AEMVJF66Q9ASUAAJG, ResourceInUseException: Table already exists: project-production-globalTable
|  Error       ForwardLambda sst:aws:Function → ForwardLambdaLogGroup aws:cloudwatch:LogGroup
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating CloudWatch Logs Log Group (/aws/lambda/project-production-ForwardLambdaFunction): operation error CloudWatch Logs: CreateLogGroup, https response error StatusCode: 400, RequestID: 46d36c6c-9ad8-4847-825a-d87021a233ce, ResourceAlreadyExistsException: The specified log group already exists<EMAIL_ADDRESS>|  Error       ForwardLambda sst:aws:Function → ForwardLambdaLogGroup aws:cloudwatch:LogGroup
|  Logs: CreateLogGroup, https response error StatusCode: 400, RequestID: 46d36c6c-9ad8-4847-825a-d87021a233ce, ResourceAlreadyExistsException: The specified log group already exists
|  Error       pybackend sst:aws:Function → pybackendLogGroup aws:cloudwatch:LogGroup
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating CloudWatch Logs Log Group (/aws/lambda/project-production-pybackendFunction): operation error CloudWatch Logs: CreateLogGroup, https response error StatusCode: 400, RequestID: a400eb12-2e87-4dda-90fd-24b3a2fc18e8, ResourceAlreadyExistsException: The specified log group already exists<EMAIL_ADDRESS>|  Error       pybackend sst:aws:Function → pybackendLogGroup aws:cloudwatch:LogGroup
|  Logs: CreateLogGroup, https response error StatusCode: 400, RequestID: a400eb12-2e87-4dda-90fd-24b3a2fc18e8, ResourceAlreadyExistsException: The specified log group already exists
|  Error       Email sst:aws:Email → EmailIdentity aws:sesv2:EmailIdentity
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating AWS SESv2 (Simple Email V2) Email Identity (mydomain.dev): operation error SESv2: CreateEmailIdentity, https response error StatusCode: 400, RequestID: 3861488f-4eb6-49f4-af8a-90c448f9f878, AlreadyExistsException: Email identity mydomain.dev already exist<EMAIL_ADDRESS>|  Error       Email sst:aws:Email → EmailIdentity aws:sesv2:EmailIdentity
|  StatusCode: 400, RequestID: 3861488f-4eb6-49f4-af8a-90c448f9f878, AlreadyExistsException: Email identity mydomain.dev already exist.
|  Error       Email sst:aws:Email → EmailTXTRecordDmarcmydomaindev aws:route53:Record
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating Route53 Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: b6d5a1ef-a3b5-4c34-a341-b9c0ca58c38c, InvalidChangeBatch: [Tried to create resource record set [name='_dmarc.mydomain.dev.', type='TXT'] but it already exists]<EMAIL_ADDRESS>|  Error       Email sst:aws:Email → EmailTXTRecordDmarcmydomaindev aws:route53:Record
|  Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: b6d5a1ef-a3b5-4c34-a341-b9c0ca58c38c, InvalidChangeBatch: [Tried to create resource record set [name='_dmarc.mydomain.dev.', type='TXT'] but it already exists]
|  Error       pybackend sst:aws:Function → pybackendRole aws:iam:Role
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating IAM Role (project-production-pybackendRole-useast1): operation error IAM: CreateRole, https response error StatusCode: 409, RequestID: 5f99aee2-d3fb-4eb5-867a-32f46369bbf2, EntityAlreadyExists: Role with name project-production-pybackendRole-useast1 already exists<EMAIL_ADDRESS>|  Error       pybackend sst:aws:Function → pybackendRole aws:iam:Role
|  IAM: CreateRole, https response error StatusCode: 409, RequestID: 5f99aee2-d3fb-4eb5-867a-32f46369bbf2, EntityAlreadyExists: Role with name project-production-pybackendRole-useast1 already exists.
|  Error       sesMxRecord aws:route53:Record
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating Route53 Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: f4133437-e327-4ef5-a5f1-5e4fd7f1d2ee, InvalidChangeBatch: [Tried to create resource record set [name='mydomain.dev.', type='MX'] but it already exists]<EMAIL_ADDRESS>|  Error       sesMxRecord aws:route53:Record
|  Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: f4133437-e327-4ef5-a5f1-5e4fd7f1d2ee, InvalidChangeBatch: [Tried to create resource record set [name='mydomain.dev.', type='MX'] but it already exists]
|  Error       spfRecord aws:route53:Record
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating Route53 Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: f88f081d-7ff5-404c-9b01-6592cd831820, InvalidChangeBatch: [Tried to create resource record set [name='mydomain.dev.', type='TXT'] but it already exists]<EMAIL_ADDRESS>|  Error       spfRecord aws:route53:Record
|  Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: f88f081d-7ff5-404c-9b01-6592cd831820, InvalidChangeBatch: [Tried to create resource record set [name='mydomain.dev.', type='TXT'] but it already exists]

I'll pass this along. It's on roadmap to make this accessible.

@jayair I've managed to orphan an SES resource myself
Like my colleague in misfortune @tortarino I have a similar story to tell
I had:
sst dev - running
which deployed SES to my local stage
and then I tried to deploy production
sst deploy --stage production
causing the following issue
I tried to run
sst refresh --stage production
and now I'm trying to unpick how to rectify this particular issue
✕  Failed
GFEmail sst:aws:Email → GFEmailIdentity aws:sesv2:EmailIdentity
sdk-v2/provider2.go:457: sdk.helper_schema: creating AWS SESv2 (Simple Email V2) Email Identity (gf.com): operation error SESv2: CreateEmailIdentity, https response error StatusCode: 400, RequestID: cb4d6e95-3725-46e0-b9f2-f6d6eec2628f, AlreadyExistsException: Email identity gf.com already exist<EMAIL_ADDRESS>GFEmail sst:aws:Email → GFEmailIdentity aws:sesv2:EmailIdentity
StatusCode: 400, RequestID: cb4d6e95-3725-46e0-b9f2-f6d6eec2628f, AlreadyExistsException: Email identity gf.com already exist.
GFEmail sst:aws:Email → GFEmailTXTRecordDmarcgfcom aws:route53:Record
sdk-v2/provider2.go:457: sdk.helper_schema: creating Route53 Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: bf75a977-3076-4b7e-bdf5-77a3ce7454d2, InvalidChangeBatch: [Tried to create resource record set [name='_dmarc.gf.com.', type='TXT'] but it already exists]<EMAIL_ADDRESS>GFEmail sst:aws:Email → GFEmailTXTRecordDmarcgfcom aws:route53:Record
Record: operation error Route 53: ChangeResourceRecordSets, https response error StatusCode: 400, RequestID: bf75a977-3076-4b7e-bdf5-77a3ce7454d2, InvalidChangeBatch: [Tried to create resource record set [name='_dmarc.gf.com.', type='TXT'] but it already exists]

That's strange, this flow in itself seems fine.

I had:
sst dev - running
which deployed SES to my local stage

and then I tried to deploy production
sst deploy --stage production
causing the following issue

What's the error this cased? Also can you share your sst config for this resource? I want to get to the bottom of this.

I upgraded to the latest sst ( "sst": "3.4.27",) and am starting to see a similar error:

|  Error       customers sst:aws:Dynamo → customersTable aws:dynamodb:Table
|    sdk-v2/provider2.go:520: sdk.helper_schema: creating AWS DynamoDB Table (portal-prod-customersTable): operation error DynamoDB: CreateTable, https response error StatusCode: 400, RequestID: 18VP4KLBL89..., ResourceInUseException: Table already exists: web-portal-prod-customersTable<EMAIL_ADDRESS>|  Error       customers sst:aws:Dynamo → customersTable aws:dynamodb:Table
|  DynamoDB: CreateTable, https response error StatusCode: 400, RequestID: 18VP4KLBL89..., ResourceInUseException: Table already exists: web-portal-prod-customersTable

@gtokman so it's likely in your case that in a previous deploy, your config did not generate these tables. So they got removed. But because of your removal policy, the actual table was retained and just removed from your state.
So in the next deploy when it tried to create those tables it basically found that the tables were already there. You'll need to re-import these.
For your case, I'd be careful when generating these dynamically. If your script fails to generate them, then they'll get removed. One option would be to do these elsewhere, like in another SST app that doesn't get run very often.

Btw about state in general I added a video recently https://www.youtube.com/watch?v=eb1ydrqEFUw
Lmk if there's something else I should cover on this topic.


Reduce npm package size

Add clean-publish and release package by npx clean-publish instead of npm publish
Add .npmignore to avoid adding test/ (current src/) to npm package

Added clean-publish and .npmignore in https://github.com/usmanyunusov/webpack-webmanifest-plugin/commit/279d55e7967e60b8efcf251eb4cafa7666ec86c7


Validation doesn't fail if callback is missing.

If a callback is specified but is missing then the validation passes anyway. I can provide a code example. However this has existed for ages. Validation should fail if a callback is missing. if a callback is specified but doesn't exist it suggests there is a bug in the developers code. When writing validation rules the developer wanted a check to be performed but isn't. This should make form validation fail.

We need code to be able to reproduce your issue.

https://github.com/EllisLab/CodeIgniter/pull/913 should fix this.

Pull #913 should fix this.


issue #672: add tags parameter to render

Address issue #672 by adding tags parameter to render

Landed manually in efdeb55202b4e8ed114eebeaabe798391f1b0a4c as there were a merge conflict as of writing this.


Handwritten character recognition improve accuracy of the model

I want to improve the accuracy rate of the model by refeeding the important features of the data to neural network.
Could you please assign this issue to me. Thank you!

There is already a similar project in the repository. You may open an issue if you have any new ideas.

Oh OK, i will close this issue then. Thank you!

Oh OK, i will close this issue then. Thank you!


Project ERROR: zxing development package not found

I got this error building the project:
Project ERROR: zxing development package not found

Should I make some preinstall steps for building?

Build requirements are listed in the spec file https://github.com/sailfishos/qr-filter-qml-plugin/blob/main/rpm/qr-filter-qml-plugin.spec#L8


Fix crash when test results JSON file is missing

This build failed naturally, but then our new test summary code also failed :frowning:  https://circleci.com/gh/fastlane/fastlane/203
Errno::ENOENT: No such file or directory - fastlane/rspec_logs.json
/Users/distiller/fastlane/rakelib/test_all.rake:9:in `read'
/Users/distiller/fastlane/rakelib/test_all.rake:9:in `rspec_json_from_log'
/Users/distiller/fastlane/rakelib/test_all.rake:99:in `block (2 levels) in <top (required)>'
/Users/distiller/fastlane/rakelib/test_all.rake:3:in `block in for_each_gem'
/Users/distiller/fastlane/rakelib/test_all.rake:2:in `each'
/Users/distiller/fastlane/rakelib/test_all.rake:2:in `for_each_gem'
/Users/distiller/fastlane/rakelib/test_all.rake:97:in `block in <top (required)>'
Tasks: TOP => test_all

The issue is that shelling out to RuboCop first meant that we didn't execute tests if rubocop found problems. Not running tests meant that the rspec JSON output file wasn't present for a sub-project. We then failed when trying to read it.
This changes the tests to run first, and makes the summary code more resilient to missing test JSON.

:AWESOME:


Allow password-less accounts which cannot be looged into without a module authorizing

Similar to the unix passwd -l account to only allow su logins. Need this to do my SSO system properly.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/286465-allow-password-less-accounts-which-cannot-be-looged-into-without-a-module-authorizing?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github).

@md-5 what did you do to accomplish your implementation?

I did the same as cyrus above

ok.  so how are you preventing them from changing their passwords and thus bypassing your backend's password system

I'm not.

do you care? (bring serious, not snide)

Not really, if they want to break their SSO that is their decision :p

Logging in again with their SSO password will set their hash back to :: and make them require that pass.

I wish that loging back in via SSO would reset it back to their ::, but it doesnt as far as i can see.
Also, it sounds nice to let breaking SSO be their decision, but typically your SSO system has enforced password policies, including change frequency. If they bypass it here they can 'make it easier' for their IRC config, while lowering your security posture.

I wish that loging back in via SSO would reset it back to the ::, but it doesnt as far as i can see.

My addon does

I noticed i'm on 1.4 (i install from epel) and so I'm gonna eval the 1.6 release as soon as I can.
That being said, in the scenario i listed they would have to reason to log back in with their SSO, and thus it would never reset, so that is a mute point.  It seems that a better security posture would be achieved by disabling local auth explicitly if using external auth method.

It seems that a better security posture would be achieved by disabling local auth explicitly if using external auth method.

Easily done with a small tweak to your SSO addon


Thoughts on a bold vim mode in the xlines?

In my local version of iceberg, I use a bolded mode name in my xline configurations. It seems to be very common in most of the xline themes I've seen. Would you be opposed if I submitted a PR for this? Here is what it would look like with the 4 different vim modes:

It seems to be enough even without bold style. I think users can find it easily with its position (on the far left) and colored background. What do you think?
Additionaly, there are more non-bold themes than others in default themes of lightline.vim. Here is the straightforward survey of them:
Bold (7 themes):

deus.vim
landscape.vim
materia.vim
material.vim
one.vim
powerline.vim (default)
srcery_drk.vim

Non-bold (17 themes):

16color.vim
OldHope.vim
PaperColor.vim
PaperColor_dark.vim
PaperColor_light.vim
Tomorrow.vim
Tomorrow_Night.vim
Tomorrow_Night_Blue.vim
Tomorrow_Night_Bright.vim
Tomorrow_Night_Eighties.vim
darcula.vim
jellybeans.vim
molokai.vim
nord.vim
seoul256.vim
solarized.vim
wombat.vim

Fair enough. I need to maintain my own branch for lightline as I need more “punch” as insert mode is not different enough from normal mode for my taste. I’m thinking of doing something similar to the insert mode of the powerline theme, but with the iceberg hues.


Cookie Consent Banner 🍪

Cookie Consent Banner 🍪
Adds a cookie consent banner to notify users that we use cookies to improve the experience on the site by saving user settings and features.
The cookie expires after 365 days by default
Example 📸

.deploy


rx.var/property setters

class State(rx.State):
    _test: str = "hi"

    @rx.var
    def test(self) -> str:
        return self._test

    @test.setter
    def test(self, value: str):
        self._test = value

    def other_handler(self):
        self.test = "hello"

With this example, State.test would be a BaseVar or EventHandler depending on where it is used

I don't understand the @test.setter annotation here. Generally I'm hesitant to do something like this where the reference changes based on the context.

@picklelo it's a design pattern from python properties, take a look here: https://docs.python.org/3/library/functions.html#property
Btw, the code above currently fails with this error:
TypeError: No JSON serializer found for State Var 'test' of value <function State.test at 0x7bfe9d21dbc0> of type <class 'function'>.

It does not fail while interpreting @test.setter. It is actually defined because ComputedVar inherits it from property.
We could at least ignore those setters or raise a better exception message.


add mit license header

AFAIK, the MIT license typically has a "MIT license" header - making it a bit easier to be recognized by both humans and machines (e.g. using licensee).
Example taken from choosealicense.com:

MIT License
Copyright (c) [year] [fullname]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
(...)

This PR adds such license header to this repositories MIT license.

 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.

This was fixed in https://github.com/twitter/twemoji/pull/519


Updated docs with latest links

Looks good, but should also address the links that no longer exist such as the links to the starter-kit folders in https://github.com/ianco/aries-vcr/blob/master/docs/README.md referenced in #741

d'oh!  fixed ...


fix cudart*dll for Windows

CUDA_RUNTIME_LIBS = ["nvcuda.dll"] -> binday_path will get c:\windows\system32 but this is not intended.
fix CUDA_RUNTIME_LIBS = ["cudart64_110.dll", "cudart64_12.dll"] to get binary_path such as 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\cudart32_110.dll' correctly.

Thanks for this quick fix @wkpark!