ip6: convert more option TLVs to use pointers

What's the reasoning behind this chane?

Just code consistency and I assumed passing by pointer was cheaper than passing by value (?).


Development: Log level for QuizScheduleService

Is your feature request related to a problem?
The following line generates a log line nearly every 5 seconds:
https://github.com/ls1intum/Artemis/blob/83f1d11d5b37832482f01bab4eba6aae9cc480a8/src/main/java/de/tum/in/www1/artemis/service/scheduled/cache/quiz/QuizScheduleService.java#L409
Describe the solution you'd like
I would suggest to set the logging of this line to debug.
Describe alternatives you've considered
You can set the log level for QuizScheduleService to warn.
Additional context
No response

Quick (temporary?) fix without code changes:
Take https://github.com/ls1intum/Artemis/blob/develop/src/main/resources/logback-spring.xml and add
<logger name="de.tum.in.www1.artemis.service.scheduled.cache.quiz.QuizScheduleService" level="WARN"/>

somewhere, then in your application.yaml or ENV set the config key logging.config: <PATH_TO_CUSTOM_LOGBACK.XML>.

We are still investigating an edge case issue which only occurs sometimes, so I would like to keep those logs for a while

We want to increase the number of info logs in general in the future because this makes it easier to identify certain issues

Setting the config value
logging:
   level:
       de.tum.in.www1.artemis.service.scheduled.cache.quiz.QuizScheduleService: WARN

directly seems to work, too.


Async error

Hi there 👋
So I am trying to read files in a batch way and creating records in neo4j
async def add_one(file_path: str, db_handler):
    email = await aparse_eml(file_path)
    await db_handler.add_email(email)
    print(f"{email.message_id}: Done!")

async def process_batch(file_paths: List[str], db_handler):
    tasks = [add_one(fp, db_handler) for fp in file_paths]
    await asyncio.gather(*tasks)

async def main(db_handler):
    file_paths_str = list(map(lambda x: str(x), file_paths))

    batch_size = 100  # Adjust this value based on your system's capacity
    start = perf_counter()

    for i in range(0, len(file_paths_str), batch_size):
        batch = file_paths_str[i : i + batch_size]
        await process_batch(batch, db_handler)

    print(f"elapsed {(perf_counter() - start)*1000:.2f}ms")
    await db_handler.close()

if __name__ == "__main__":
    # main()
    db_handler = AsyncGraphDBHandler()
    asyncio.run(main(db_handler))

Where my aparse_eml
async def aparse_eml(file_path: str):
    async with aiofiles.open(file_path, "rb") as f:
        data = await f.read()
    return parse_bytes(data)

opens a file and does some processing to obtain a dataclass Email, my AsyncGraphDBHandler
class AsyncGraphDBHandler:
    def __init__(
        self,
        uri: str = "neo4j://localhost:7687",
        username: str = "neo4j",
        password: str = "password",
    ) -> None:
        self.driver = AsyncGraphDatabase.driver(uri, auth=(username, password))

    async def create_person(self, tx, person: Person):
        result = await tx.run(
            """
            MERGE (p:Person {name: $name, address: $address})
            RETURN p
            """,
            name=person.name,
            address=person.address,
        )

    async def create_email(self, tx, email: Email):
        # First create all the Person
        # sender: Person
        # recipient: Person
        # cc: Optional[List[Person]]
        await self.create_person(tx, email.sender)
        await self.create_person(tx, email.recipient)
        [
            await self.create_person(tx, person) for person in email.cc
        ] if email.cc else []

        # Then create the Email
        await tx.run(
            """
            MERGE (e:Email {message_id: $message_id, subject: $subject, date: $date,
            date_unix: $date_unix, content: $content, reply_to: $reply_to,
            previous_email_content: $previous_email_content})
            RETURN e
            """,
            message_id=email.message_id,
            subject=email.subject,
            date=email.date,
            date_unix=email.date_unix,
            content=email.content,
            reply_to=email.reply_to or "",
            previous_email_content=email.previous_email_content,
        )

        # Create relationships with sender, recipient, and cc
        await tx.run(
            """
            MATCH (e:Email), (p:Person)
            WHERE e.message_id = $message_id AND p.address = $sender_address
            MERGE (p)-[:SENT]->(e)
            """,
            message_id=email.message_id,
            sender_address=email.sender.address,
        )

        await tx.run(
            """
            MATCH (e:Email), (p:Person)
            WHERE e.message_id = $message_id AND p.address = $recipient_address
            MERGE (p)-[:RECEIVED]->(e)
            """,
            message_id=email.message_id,
            recipient_address=email.recipient.address,
        )

        for cc_person in email.cc:
            await tx.run(
                """
                MATCH (e:Email), (p:Person)
                WHERE e.message_id = $message_id AND p.address = $cc_address
                MERGE (p)-[:CC]->(e)
                """,
                message_id=email.message_id,
                cc_address=cc_person.address,
            )

        # Link to previous emails
        for ref in email.references:
            await tx.run(
                """
                MATCH (e1:Email {message_id: $message_id}), (e2:Email {message_id: $ref})
                MERGE (e1)-[:REFERENCES]->(e2)
                """,
                message_id=email.message_id,
                ref=ref,
            )

    async def add_email(self, email: Email):
        async with self.driver.session(database="neo4j") as session:
            await session.write_transaction(self.create_email, email)

I am getting this error
RuntimeError: Task <Task pending name='Task-7' coro=<add_one() running at /Users/francescozuppichini/Documents/hunter-biden-emails/main.py:19> cb=[gather.<locals>._done_callback() at /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/asyncio/tasks.py:764]> got Future <Future pending> attached to a different loop

I think they are running in two different event loops
Since I am here, is there a way to create all the persons concurrently and efficiently, I've tried different things but none of them works.
Thanks a lot
Fra

Hello and thanks for reaching out. What version of the driver are you using?
Please try creating the driver wrapper (and with it the driver) inside the async main and let me know if this fixes it. In the meantime I'll try to reproduce the error.
...

async def main():
    db_handler = AsyncGraphDBHandler()
    ...

if __name__ == "__main__":
    asyncio.run(main())

Managed to reproduce it using Python 3.7.
It is indeed the same issue as the one I linked in the previous comment and it does not come from within the driver but how asynio implements synchronization primitives. Until Python 3.9 they use get_event_loop which creates a new event loop if there is no running loop. So there are a few options forward:

Move the AsyncGraphDBHandler creation into the async main, which postpones creation of the async synchronization primitives until there is an event loop running.
Update your Python to 3.10 or newer where asyncio changed the implementation of synchronization primitives to lazily get the event loop when needed and not on initialization. https://github.com/python/cpython/issues/86558

I will close the issue as it doesn't appear to be a bug in the driver. Please feel free to keep commenting if you have further questions.

Managed to reproduce it using Python 3.7.
It is indeed the same issue as the one I linked in the previous comment and it does not come from within the driver but how asynio implements synchronization primitives. Until Python 3.9 they use get_event_loop which creates a new event loop if there is no running loop. So there are a few options forward:

Move the AsyncGraphDBHandler creation into the async main, which postpones creation of the async synchronization primitives until there is an event loop running.
Update your Python to 3.10 or newer where asyncio changed the implementation of synchronization primitives to lazily get the event loop when needed and not on initialization. [document removal of] the deprecated 'loop' parameter asyncio API in 3.10 python/cpython#86558

Thank a lot. Need to check (not at my home pc) but I think I was using python 3.9. I will try with python 3.10 and let you know


python310Packages.oralb-ble: 0.17.1 -> 0.17.2

Diff: https://github.com/Bluetooth-Devices/oralb-ble/compare/refs/tags/v0.17.1...v0.17.2
Changelog: https://github.com/Bluetooth-Devices/oralb-ble/releases/tag/v0.17.2
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

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

3 packages built:

home-assistant-component-tests.oralb
python310Packages.oralb-ble
python311Packages.oralb-ble


Make it easy to use _make_component_list_from_actions from the dictionary version of actions

Right now, if a user passes in a list of DataCheckActions, it is easy to use _make_component_list_from_actions. However, if the user passes in the dictionary version (as is returned by data check's validate call), it is not. This is primarily because the dictionary version uses a string code ("DROP_COL") while _make_component_list_from_actions expects the enum (DataCheckActionCode.DROP_COL).

I think this isn't necessary anymore, since we're mostly using _make_component_list_from_actions as a private method and have included more public methods for users. :)


perl536Packages: cross fixes

Description of changes
This fixes the cross compilation of several perl packages that are in the closure of biber.
Most of these fixes are simply adding buildPackages.perl to nativeBuildInputs. This doesn't change anything for native builds since these pull in perl anyway. Cross builds use a minimal perl copy perl.mini (this does not exist for native), which suffices for bootstrapping perl and running simple build scripts, but not for the builds scripts of the derivations changed here: They mostly fail with error messages like
perl says : Can't load module B, dynamic loading not available in this perl
  (You may need to build a new perl executable which either supports
  dynamic loading or has the B module statically linked into it.)
 at (eval 11) line 1.

I can split this into multiple PRs if desirable, but most of the builds cannot be tested indepentently because of many inter-dependencies.

Things done

Built on platform(s)

[x] x86_64-linux (native and for aarch64).
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Marked as draft for now, see #222427


Best way to go to specific line in a CSV file streamed from HTTP?

I am using a Lambda function with a 5-minute timeout to stream data from a CSV file on HTTPS using csv DictReader. I can read about 3 million lines in 5 minutes, after which I save the lines_processed in DynamoDB. When I restart my Lambda function, I want to resume reading at lines_processed.
I initially tried to use seek, but that didn't work well with DictReader. Now I'm reading through the file line-by-line and ignoring the data until lines_processed: see the code below, but I'm finding that simply reading through the file takes up most of the time, so when I resume, it takes at least 4 minutes to read through 3+ million lines.
Any suggestions on how to speed up the resume process? Thanks!
batch = []
with smart_open.smart_open('https://example.com/test.csv', 'r') as f:
    reader = csv.DictReader(f)
    i = 0
    for row in reader:
        i += 1
        if i > lines_processed:
            if len(batch) % 5000 == 0 and batch:
                lines_processed = i - 1
                yield batch, lines_processed
                del batch[:]
            batch.append(row)

I can read about 3 million lines in 5 minutes, after which I save the lines_processed in DynamoDB.

Save the byte offset of the stream (you can get it with f.tell()). You can then seek to that offset and continue reading.

I initially tried to use seek, but that didn't work well with DictReader.

I think the issue there is the DictReader needs access to the very first row of the CSV (the file header). Without it, DictReader would not know what the fields of the CSV are. I think you have two choices here:

Abandon DictReader and use the regular csv.reader
Wrap the stream such that it always serves the first line of the CSV first, before seeking to the previous offset and resuming

I recommend 1), it is simpler.

Thanks, I hadn't thought about DictReader needing the column names in the first row. I will also try configuring DictReader to handle files without a header by explicitly specifying the columns. That would minimize the changes to my existing code.


Doesn't crash the RTM client if a message with a reply_to ID with n…

…o response handler is received
Fixes #226

Coverage decreased (-0.09%) to 76.526% when pulling 238e88134fe7b1fc1c170764aef4a6f1497f9bb3 on fix_missing_response_handler_err into 161feab2b4b10d87281aabb39b1c441b069b01d2 on master.


Unique:true doesn't work in field

Bug Report

Steps to Reproduce

fields: [
	{
		name: 'nome',
		label: 'Nome',
		type: 'text',
		required: true,
		unique: true,
	},
],

I can add unlimited entry.
Other Details
<EMAIL_ADDRESS>

Iirc, I think you need index set to true for the uniqueness to be enacted. If so, I guess this could be added to the relevant fields' documentation.

cleared the cache: seems to have fixed it


snowflake_table_column_masking_policy_application keeps getting recreated at every plan

Terraform CLI and Provider Versions
Terraform version: 1.2
Provider version: was initially using 0.67.0 but also tested with the most recent version (0.77.0 atm) to see if the bug was fixed, but it remained the same.
Terraform Configuration
# _database/_modules/_masking_policy/masking_policy.tf

resource "snowflake_masking_policy" "policy" {
  name     = "MY_APP_${upper(var.schema)}_STRING_MASK"
  database = var.database
  schema   = var.schema
  signature {
    column {
      name = "VAL"
      type = "VARCHAR"
    }
  }
  return_data_type = "VARCHAR(16777216)"
  masking_expression = trimspace(<<-EOT
  case
    when current_role() in (
      '${join("',\n    '", var.sensitive_select_roles)}'
    ) then val
    else sha2(val)) # This was changed but it doesn't matter because it's working properly
  end
  EOT
  )
}

resource "snowflake_masking_policy_grant" "ownership" {
  database_name       = var.database
  schema_name         = var.schema
  masking_policy_name = snowflake_masking_policy.policy.name
  privilege           = "OWNERSHIP"
  roles               = var.masking_admins
}

output "masking_policy" {
  value = snowflake_masking_policy.policy.qualified_name
}

# _database/schema/schema.tf

resource "snowflake_schema" "my_schema" {
  database     = var.database_name
  name         = "MY_SCHEMA"
  comment      = "Schema for xxx"
  is_transient = var.transient
}

...

module "masking_policies" {
  source                 = "../../_modules/_masking_policy"
  database               = snowflake_schema.my_schema.database
  schema                 = snowflake_schema.my_schema.name
  masking_admins         = var.masking_admins
  sensitive_select_roles = var.sensitive_select_roles
}

...

module "my_app_tables" {
  source         = "../../_modules/_table"
  database       = snowflake_schema.games.database
  schema         = snowflake_schema.games.name
  masking_policy = module.masking_policies.masking_policy

  # This is to create a table for each namespace passed to the schema
  for_each = {
    for n in var.namespaces : n.namespace => n
  }

  namespace      = each.value.namespace
  selector_roles = each.value.selector_roles
}

# _database/_modules/_table/table.tf

resource "snowflake_table" "my_table" {
  database = local.database
  schema   = local.schema
  name     = local.namespace

  comment    = "A table containing xxx for ${local.namespace}."
  cluster_by = ["SERVER_TIMESTAMP::date"]

  column {
    name     = "COLUMN_1"
    type     = "VARCHAR(36)"
    nullable = true
    comment  = "Column 1"
  }

  column {
    name     = "USER_ID"
    type     = "VARCHAR(36)"
    nullable = false
    comment  = "User ID"
  }

  column {
    name     = "OTHER_COLUMN"
    type     = "TIMESTAMP_TZ(9)"
    nullable = true
    comment  = "Other column"
  }

  lifecycle {
    ignore_changes = [column["USER_ID"].masking_policy]
  }
}

resource "snowflake_table_column_masking_policy_application" "mask_user_id" {
  table          = snowflake_table.telemetry_table.qualified_name
  column         = "USER_ID"
  masking_policy = var.masking_policy
}

Expected Behavior
When applying the masking policies to the column in the tables, they should only be created once. Using the lifecycle argument should prevent terraform from changing it again in the table level (not in the resource itself, though).
Actual Behavior
After creating and applying the policies for the first time, they show up in the plan as if changed, although nothing was changed. If terraform apply is executed, the issue persists and it keeps pointing the snowflake_table_column_masking_policy_application as if something changed:
  # module.schema.module.my_app_tables["name_of_the_table"].snowflake_table.my_table will be updated in-place
  ~ resource "snowflake_table" "my_table" {
        id                  = "MY_APP_TEST|SCHEMA|NAME_OF_THE_TABLE"
        name                = "NAME_OF_THE_TABLE"
        # (8 unchanged attributes hidden)

      ~ column {
          - masking_policy = "MY_APP_TEST.SCHEMA.MY_APP_SCHEMA_STRING_MASK" -> null
            name           = "USER_ID"
            # (3 unchanged attributes hidden)
        }

        # (13 unchanged blocks hidden)
    }

  # module.schema.module.my_app_tables["name_of_the_table"].snowflake_table_column_masking_policy_application.mask_user_id must be replaced
-/+ resource "snowflake_table_column_masking_policy_application" "mask_user_id" {
      ~ id             = "\"MY_APP_TEST\".\"SCHEMA\".\"NAME_OF_THE_TABLE\".\"USER_ID\"" -> (known after apply)
      ~ masking_policy = "MY_APP_TEST.SCHEMA.MY_APP_SCHEMA_STRING_MASK" -> "\"MY_APP_TEST\".\"SCHEMA\".\"MY_APP_SCHEMA_STRING_MASK\"" # forces replacement
        # (2 unchanged attributes hidden)
    }

Plan: 1 to add, 1 to change, 1 to destroy.

Steps to Reproduce

Create masking policies and apply them to a column in a table, according to the provider documentation
Run terraform plan
Run terraform apply
Run terraform plan again

How much impact is this issue causing?
High
Logs
https://gist.github.com/patcky/4324cc01455c6ff817deeccc2e73590b
Additional Information
After some investigation and debugging, I found that the issue seems to be with the way the provider compares the snowflake_table_column_masking_policy_application returned by snowflake with the value saved in the state file.
The issue could be in this line, particularly in the function ParseFullyQualifiedObjectID, in strings.ReplaceAll(s, "\"", "") command. Currently, as it is, the command removes the double quotes but not the escape characters \ which could be the cause of the issue, but it requires further investigation.
I am attaching the relevant logs for debugging purposes.

Hey @patcky. Thanks for reporting the issue.
We are currently migrating the table resource to the new SDK implementation; we will revisit this problem after this migration happens (maybe it will be enough to solve the issue).

Hi @sfc-gh-asawicki actually this issue also happens on both network_policy and snowflake_account_password_policy_attachment modules with the current latest v0.92.
below is a terraform plan output.
`
Terraform will perform the following actions:
snowflake_account_password_policy_attachment.account_password_policy_attachment_account_password_policy must be replaced
-/+ resource "snowflake_account_password_policy_attachment" "account_password_policy_attachment_account_password_policy" {
~ id              = "SNOWFLAKE_GOV|PUBLIC|ACCOUNT_LEVEL_PASSWORD_POLICY" -> (known after apply)
~ password_policy = ""SNOWFLAKE_GOV"."PUBLIC"."ACCOUNT_LEVEL_PASSWORD_POLICY"" -> "SNOWFLAKE_GOV.PUBLIC.ACCOUNT_LEVEL_PASSWORD_POLICY" # forces replacement
}
snowflake_network_policy.network_policy_INTERNAL_TRAFFIC will be updated in-place
~ resource "snowflake_network_policy" "network_policy_INTERNAL_TRAFFIC" {
~ allowed_network_rule_list = [
- ""SNOWFLAKE_GOV"."PUBLIC"."INTERNAL_TRAFFIC"",
+ "SNOWFLAKE_GOV.PUBLIC.INTERNAL_TRAFFIC",
]
id                        = "INTERNAL_TRAFFIC"
name                      = "INTERNAL_TRAFFIC"
# (1 unchanged attribute hidden)
}
snowflake_network_policy.network_policy_LOCAL_IP will be updated in-place
~ resource "snowflake_network_policy" "network_policy_LOCAL_IP" {
~ allowed_network_rule_list = [
- ""SNOWFLAKE_GOV"."PUBLIC"."LOCAL_IP"",
+ "SNOWFLAKE_GOV.PUBLIC.LOCAL_IP",
]
id                        = "LOCAL_IP"
name                      = "LOCAL_IP"
# (2 unchanged attributes hidden)
}
Plan: 1 to add, 2 to change, 1 to destroy.`

Hey @yinxu0619 👋
Network policies were refactored in 0.94.0 and shouldn't cause any issues regarding identifiers. The diffs were mostly connected to how the identifier is specified in the config/state vs returned by Snowflake. Snowflake has certain rules on returning quoted or non-quoted identifiers (sometimes they're partially quoted), which caused plan diffs that should be no longer visible in the later versions of the provider. We would appreciate feedback on that once you've upgraded to at least version 0.94.0.
Hey @patcky 👋
We should also take care of table and table-related resources soon with the same approach of suppressing such diffs. We're also planning to do the same for other resources, so they won't cause any quote-related diffs.

Hi SFC folks,
I'm experiencing the same (Masking Policy) issue: Every plan is destroy&recreating all of my masking policies. I first encountered this on provider v0.90.0, but it persisted through to current (v0.96.0). Plan snippet:
 # snowflake_table_column_masking_policy_application.$WHATEVER[$KEY] must be replaced
-/+ resource "snowflake_table_column_masking_policy_application" "$WHATEVER" {
      ~ id             = "\"$DATABASE\".\"$SCHEMA\".\"$TABLE\".\"$COLUMN\"" -> (known after apply)
      ~ masking_policy = "$DATABASE.$SCHEMA.$UNIQUE_MASKING_POLICY_NAME" -> "\"$DATABASE\".\"$SCHEMA\".$UNIQUE_MASKING_POLICY_NAME\"" # forces replacement
        # (2 unchanged attributes hidden)
    }

Plan: 1413 to add, 0 to change, 1413 to destroy.

That plan was generated immediately after I had applied a similar plan - no changes to my TF code.
I think this resource was perhaps missed during the identifier rework.
If it would be useful, I can provide more details and / or open a new issue.

Hi @AaronCoquet-Easypark 👋
This is caused by the legacy parsing of masking policy identifiers in this resource. We'll address this during table rework, which should happen soon. As a workaround, please use $DATABASE.$SCHEMA.$UNIQUE_MASKING_POLICY_NAME as masking_policy masking_policy value (to match the value saved in the state).

I have a workaround for re-creating the plan, i use the jsonnet to render the terraform and add a converter in the head like below:
`local fqn_trans(database, schema, resource) = std.asciiUpper(database + '.' + schema + '.' + resource);
local masking_policy_trans(database, schema, resource) = std.asciiUpper(database + '.' + schema + '.' + resource);
local tlb_trans(database, schema, resource) = std.asciiUpper('"' + database + ""."" + schema + ""."" + resource + '"');
local sig_trans(column) = {
signature: {
column: {
name: column.name,
type: std.asciiUpper(column.type),
},
},
};
{
generateMaskingPolicy(policy_list, prefix): {
[std.asciiUpper(policy_item.name)]: {
name: std.asciiUpper(policy_item.name),
database: std.asciiUpper(policy_item.database),
schema: std.asciiUpper(policy_item.schema),
signature: std.asciiUpper(policy_item.signature),
masking_expression: policy_item.expression,
return_data_type: policy_item.return_data_type,
comment: policy_item.comment,
provider: 'snowflake.default',
} + sig_trans(policy_item.column)
for policy_item in policy_list
},
generateMaskingPolicyApplication(policy_application_list, prefix): {
[std.asciiUpper(policy_application_item.table_name + '_' + policy_application_item.column)]: {
depends_on: ['snowflake_masking_policy.' + std.asciiUpper(policy_application_item.policy_name)],
table: tlb_trans(policy_application_item.database, policy_application_item.schema, policy_application_item.table_name),
column: std.asciiUpper(policy_application_item.column),
masking_policy: masking_policy_trans(policy_application_item.database, policy_application_item.schema, policy_application_item.policy_name),
provider: 'snowflake.default',
}
for policy_application_item in policy_application_list
},
}
`
by this, it can append double quotes to the {database}.{schema} automatically.

Still hitting this in V1:
https://github.com/Snowflake-Labs/terraform-provider-snowflake/issues/1764#issuecomment-2555239846


server: removing unused onRuntimeCreated hooks

Per discussion in #17235

The build is failing due to an unused ListenerHooks parameter in InstanceImpl::initialize method (here: https://github.com/envoyproxy/envoy/blob/main/source/server/server.cc#L336).

/retest


create a pull-request for verificatum

https://github.com/verificatum/verificatum-vmn
which is the demonstrator in trustfull.

This largely depends on #256 being fixed first, as verificatum uses spaces for indentation.

This should be possible for next week's milestone

Add overview of all violations

verificatum-vmn is really not very vulnurable, here are all of the violations that our current checks can see:
DeadStoreCheck=8
ConditionalUnreachableCodeCheck=6
NullDereferenceCheck=6
InterruptedExceptionCheck=3
CastArithmeticOperandCheck=1
UnclosedResourcesCheck=1
IdenticalOperandOnBinaryExpressionCheck=1

Several of these are false positives. For example, the dead stores seem deliberate, as it's setting null in variables with sensitive information after they are no longer needed. It's overall just a very carefully written codebase with few flaws, not your average open source project, I'd say.
Henre are the detailed mining stats: verificatum_vmn_mining_stats.zip
verificatum-vcr has some more stuff:
EqualsOverridenWithHashCodeCheck=22
InterruptedExceptionCheck=21
DeadStoreCheck=14
AssertOnBooleanVariableCheck=12
UnclosedResourcesCheck=7
ConditionalUnreachableCodeCheck=6
SymmetricEqualsCheck=5
CastArithmeticOperandCheck=3
MutableMembersUsageCheck=3
ParameterReassignedToCheck=2
NullDereferenceCheck=2
RawByteBitwiseOperationsCheck=1
FloatEqualityCheck=1
NoWayOutLoopCheck=1
XxeProcessingCheck=1

Unfortunately, the XxeProcessingCheck seems to be a false positive, as there is an explicitly set external schema, so it does not seem like an oversight on part of the developer (as is usually the case with XxeProcessingCheck).
Here are the detailed mining statistics: verificatum_vcr_mining_stats.zip
But in summary, verificatum-vcr seems much more amenable for repair than verificatum-vmn, so I will proceed with investigating the former.

I believe that I have found a true positive.
    public static int optimalWidth(final int bitLength) {

        // This computes the theoretical optimum.
        int width = 1;
        double cost = 1.5 * bitLength;
        double oldCost;
        do {

            oldCost = cost;

            width++;
            final int widthExp = 1 << width;
            cost =
                ((double) (widthExp + (2 - 1 / widthExp) * bitLength)) / width; // noncompliant

        } while (cost < oldCost);

        return Math.max(1, width - 1);
    }

            cost =
                ((double) (widthExp + (2 - 1 / widthExp) * bitLength)) / width;

is noncompliant with rule 2184: Math operands should be cast before assignment, because the subexpression (2 - 1 / widthExp) has division 1 / widthExp, which is always 0 as both numerator and denominator are integers. We can patch this, but the output is a bit off:
             cost =
-                ((double) (widthExp + (2 - 1 / widthExp) * bitLength)) / width;
+                ( (double) (widthExp + ((2 - ((double) 1 / widthExp)) * bitLength))) / width;

There is an unwanted space at the beginning of the expression, not sure why that's happening. Not a security fix per se, but it's at least a non-trivial patch.

The unwanted space is a bug in the sniper printer, it fails to match a parenthesis to the cast expression, instead matching it to the parenthesis following the cast, thereby printing an unwanted space character.

I've poked about in the sniper printer, and fixing this issue with the unwanted space is probably infeasibly difficult. The reason for this is that the sniper printer attempts to match tokens that the default printer wants to print to tokens in the source code. The default printer is extremely liberal with printing parentheses, and accurately matching this abundance of parentheses tokens to actual source tokens is virtually impossible.
In trying to deal with this, I think we can add handling for corner cases ad infinitum. The best way to solve this would probably be to decrease the amount of redundant parentheses that the default printer outputs, especially in binary operator expressions.

Not a security fix per se, but it's at least a non-trivial patch.

Yes, let's try and see what Douglas thinks of the warning and its fix.

After discussion with Douglas, I will move this to next year.

First PR is merged: https://github.com/verificatum/verificatum-vmn/pull/11
In the future, we are requested to submit one PR per rule. In other words, if there are multiple violations of a rule, they should all be fixed in the same PR.

First PR is merged: https://github.com/verificatum/verificatum-vmn/pull/11
In the future, we are requested to submit one PR per rule. In other words, if there are multiple violations of a rule, they should all be fixed in the same PR.

Nice, that's a new passed milestone for us! Congrats.

Nice, that's a new passed milestone for us! Congrats.

As we've made the first PR for this project, I'm closing this issue. We all know creating PRs is a standing mission for Sorald, so it doesn't have to clutter up the issue tracker :)
I expect to return to making PRs for Verificatum in about 2 weeks time.

As we've made the first PR for this project, I'm closing this issue. We all know creating PRs is a standing mission for Sorald, so it doesn't have to clutter up the issue tracker :)
I expect to return to making PRs for Verificatum in about 2 weeks time.

We have 36k LOC in https://github.com/verificatum/verificatum-vcr, can Sorald fix something in verificatum-vcr also?

We have 36k LOC in verificatum/verificatum-vcr, can Sorald fix something in verificatum-vcr also?

Yes! I've been meaning to get around to it, but I've simply prioritized other things. Now that you've brought it up again, I'll get to it after I've completed a first draft of the GitHub Action.
Thanks for the reminder :)

great, thanks.

See #492


:ghost: Remove unnecessary line from Containerfile

This was from an early attempt at copying the config.toml in that I realized was unnecessarily complex. I missed deleting it when simplifying the process.


Impossible to style SegmentedControlIOS text and invalid PropTypes for tintColor prop

Currently there is no way to style the text in SegmentedControlIOS (e.g., fontFamily, fontSize, etc.). I tried reimplementing the component from scratch in JS and everything was possible except for the transparent text achieved by the native UISegmentedControl.
Could a textStyle prop be added to this component?
Moreover, the tintColor prop currently only expects a string but according to the documentation it should also support numbers (e.g., 0xff00ff00).

I think reimplementing the component from scratch would be cool, and I also think it would be best done as a module rather than as part of React Native itself. I am going to suggest that that's the best way forward and close this issue in the meantime. Thanks for bringing this up!


fix: Room mention in the message is not highlighted

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/49494
PROPOSAL: https://github.com/Expensify/App/issues/49494#issuecomment-2362412767
Tests

Go to a room.
Send a message containing #room mention.
Go to Search.
Go to Chat.
Click on the message sent in Step 3.
Verify that: The room mention in the message will be highlighted and linked when opened from Search.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Go to a room.
Send a message containing #room mention.
Go to Search.
Go to Chat.
Click on the message sent in Step 3.
Verify that: The room mention in the message will be highlighted and linked when opened from Search.

[x] Verify that no errors appear in the JS console

PR Author Checklist

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

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

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

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

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

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

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

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/user-attachments/assets/fa190a44-bedd-4129-b9de-f6520da11eb6

iOS: Native

https://github.com/user-attachments/assets/15aef807-f8bd-4c1c-a09b-f33392623d5a

iOS: mWeb Safari

https://github.com/user-attachments/assets/6b880c97-1e23-4273-b089-c1185b13392c

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/293aee63-532a-444d-95e7-4e1e84c21032

MacOS: Desktop

https://github.com/user-attachments/assets/fcd84100-f16a-4f7f-b0c3-b2c43ef1e0ec

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


Added Login page with password request. Maybe kinda solves #24

Implemented by https://github.com/serlo-org/serlo-highrise-report-configuration


Valve controller

Hi,
I have a valve controller which is connected to a Tuya gateway via BT. The valve controller has no IP. How can I handle it with tinytuya?
Thanks

Hi @fmarzocca  - You control the valve through the gateway.  Here is an example:
https://github.com/jasonacox/tinytuya/blob/master/examples/zigbee_gateway.py
gw = tinytuya.Device( 'eb...4', address=None, local_key='aabbccddeeffgghh', persist=True, version=3.3 )

print( 'GW IP found:', gw.address )

# configure one or more children.  Every dev_id must be unique!
#   cid is the "node_id" from devices.json
valve = tinytuya.OutletDevice( 'eb14...w', cid='0011223344556601', parent=gw )

print(valve.status())

Cool! Thank you!


[2.5 backport] KEv2- Ensure CIS hardened profile scan passes

https://github.com/rancher/rancher/issues/29067

Tested on Rancher, v2.5-head version 0713103 with the following steps:

Deployed an RKE HA local cluster that is hardened based on steps listed here
Install CIS Benchmark 1.0.400 on local cluster
Run rke-profile-hardened-1.6 scan on local cluster
When the HA rancher setup comes up Active, deploy an EKSv2 and GKEv2 cluster
EKS operator: v1.0.10-rc1
GKE operator: v1.1.1-rc10
Run rke-profile-hardened-1.6 scan on local cluster again

Result:
The first scan has two failures (5.1.5 and 5.3.2). These are expected.

The second scan with kev2 operators deployed show the same failures. No additional failures are seen.


file module, mode check request

As per http://docs.ansible.com/ansible/file_module.html:
"For those used to /usr/bin/chmod remember that modes are actually octal numbers (like 0644). Leaving off the leading zero will likely have unexpected results. "
Can we get a lint check for this?

It sounded like @siddhardthist was offering to create a PR for this in #99. I would certainly consider such a PR very favourably, particularly one that included a test case for the various possibilities (mode=644, mode=0644, mode=g+rwx etc)

@willthames I am currently working on implementing this.

As it turns out, this is currently impossible with the matchtask method, because the mode is parsed and stored in the task dict as an int, which erases whether or not it had leading zeroes in the first place. Is there another way to go about this @willthames?
You can see my work so far here.


Add Roboclaw settings to readme

Plus some minor reorg

@apollokit merging in since I didn't hear from you


Support No Backend Opts

I tried to start a project but did not want a backend I figured I could just delete it after it was generated however when I was going through the steps I did not select a provider for static files so it failed

ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully

Maybe either add selection for no backend or set one by default if non are selected.

Closing, b/c stale.


training on waymo or nuscense datasets

Thank you very much for sharing the code! Can this program run on waymo or nuscense dataset？ and if so, which parts need to be adjusted?  Looking forward to your reply.

Yes, we have updated the repo for training on waymo open dataset. Please look the README file.


Additionally build Kinoite images

It looks like until this proposed change lands in Fedora 38, this repository is the semi-official location for OCI images of Silverblue.
It would also be fun to play around with Kinoite images, which is why this PR expands the workflow matrix to build two additional images (fedora-kinoite:36 and fedora-kinoite:37), bringing the total job count up to 4.
I tested these changes in a fork of this repository here. The tests seem to all pass, except for some network flakiness I encountered when pushing the fedora-silverblue:36 image (though the build itself went smoothly).
I also updated the README to mention the new Kinoite images.

Thanks for the PR; I do hope we can make progress on https://pagure.io/releng/pull-request/11180 soon though.
This will also exercise a new code path in handling not-previously-built images, let's see if it works!


Potential bug - preprocessCSS()

Please provide the environment you discovered this bug in.

Which area/package is the issue in?
vite-plugin-angular
Description
vite-plugin-angular uses preprocessCSS() Vite function since v. 1.6.4. The function uses config.createResolver under the hood, but Vite adds createResolver when config is resolved and provides configResolved hook https://vitejs.dev/guide/api-plugin#configresolved for plugins.
Not resolved config is stored by vite-plugin-angular plugin to userConfig variable and then it's passed to preprocessCSS(). As result createResolver is not available and it is not possible to run style pre-processor (in my case it is for SASS).
Does it make sense to add the following configResolve hook implementation to the plugin?
configResolved(resolvedConfig) {   userConfig = resolvedConfig }
Please provide the exception or error you saw
Vite 5.3.5:

file:///node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:36585
      return sassResolve || (sassResolve = config.createResolver({
                                                  ^

TypeError: config.createResolver is not a function
    at get sass (file:///node_modules/vite/dist/node/chunks/dep-mCdpKltl.js:36585:51)

Other information
No response
I would be willing to submit a PR to fix this issue

[ ] Yes
[ ] No

@slashby Yep, that makes sense


Fix EBFMI bug

Address https://github.com/TuringLang/AdvancedHMC.jl/issues/118#issuecomment-549121503

Any idea what's causing those errors? I'm seeing them also on #124, and I don't think here or there they have anything to do with the changes made.

It seems that after https://github.com/TuringLang/AdvancedHMC.jl/pull/120 is merged the preconditioner is less numerical stable... I will look into why. Let's merge this PR first anyway.

I mean #121


Split Circuit Visualization Backends into separate modules

What is the expected enhancement?
Right now we have one giant module qiskit.tools.visualization._circuit_visualization which contains both the public methods and the implementations for 2 different backends (mpl and latex). As part of the circuit visualization cleanup we should create a separate module for each backend qiskit.tools.visualization._latex and qiskit.tools.visualization._matplotlib. This is how we set up the text/ascii backend already. After this happens we'll just have the public interfaces (mainly circuit_drawer() and it's helper functions) living in qiskit.tools.visualization._circuit_visualization.

I think we should close #612 as the title implies more but the comments are more aligned to this one.


System.MissingMethodException

Using the latest nuget version of Deedle in a web project, I get the following error:
Method not found: 'Microsoft.FSharp.Core.FSharpOption`1<!!0> Deedle.Internal.Seq.headOrNone(System.Collections.Generic.IEnumerable`1<!!0>)'.
System.MissingMethodException

This happens in a web project. Referencing FSharp.Core or adding the dll manually to the bin folder doesn't resolve the problem. Note, I am using FSharp.Core <IP_ADDRESS> in my projects.

Resolved the problem by adding the following redirect to the web.config:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
	<dependentAssembly>
	  <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
	  <bindingRedirect oldVersion="<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
	  <bindingRedirect oldVersion="<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
	  <bindingRedirect oldVersion="<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
	  <bindingRedirect oldVersion="<IP_ADDRESS>" newVersion="<IP_ADDRESS>" />
	</dependentAssembly>
  </assemblyBinding>
</runtime>

But these things are always a bit of a PITA. Are there more friendly solutions instead of having to manually adjust the app.config or web.config files?

Yes, this is PITA, but unfortunately, there is nothing we can do about this - if you want to learn more about this, have a look at: http://fsharp.github.io/2015/04/18/fsharp-core-notes.html


Signer authorized keys

Authorized key is the tezos native method to authenticate signing
requests, one that we use in the new tezos-kms-signer-lambda.
This adds the required support on tezos-k8s to sign with such a signer.
The way it works in octez is:

when the baker/client connects to the signer for the first time,
signer answers with a list of "authorized_keys" that the signature
request must be signed with. These authorized keys are just tezos
accounts
if the baker/client has the secret key for one of these authorized
keys, they will just sign every request with it. otherwise, there will
be an error
this can't be nested. the authorized_key can't be remote

We add support in tezos-k8s by assuming the authorized_keys are just
standard "accounts". Then, you may configure a baker as follows:
nodes:
  mybaker:
    bake_using_accounts:
    - mybakeraddy
    authorized_keys:
    - my_authorized_key

config-generator then ensures that the private authorized key is
accessible to the baker.
We also add support on octez-signer end:
octezSigners:
  mysigner:
    sign_for_accounts:
    - mybakeraddy
    authorized_keys:
    - my_authorized_key

When set, the signer mandates requests to be authenticated. Otherwise,
it signs anything.
This way, you can test end-to-end in a private chain.
We modify mkchain to do this by default: mkchain now generates an
authorized key and uses it to sign by default.
Also, mkchain was previously defaulting to using one remote signer, but
this broke when adding support for tacoInfra signer. I fixed it.
I have tested it with 3 bakers and 2 signers, one authorized and one
not. It's all working. I haven't tried zerotier and public chains.
Other changes:

switch default version to 17.3
no magic byte restriction from signer - prevents activation

I have tested this end-to-end with the lambda on ghostnet so marking this ready:
https://ghost.tzstats.com/tz1Qf1pSbJzMN4VtGFfVJRgbXhBksRv36TxW#baking

Perhaps Helm should do validation on the auth accounts. It could fail fast if for example, a signer/baker specifies an account that doesn't exist.

My thinking is if an auth key is not defined, and generate unsafe data is true, that they can be auto generated similar to baking accounts. https://github.com/oxheadalpha/tezos-k8s/blob/cc7781527a207f6e9b3d8b1fdc30518b55e914bc/utils/config-generator.py#L221

Perhaps Helm should do validation on the auth accounts. It could fail fast if for example, a signer/baker specifies an account that doesn't exist.

Done.

My thinking is if an auth key is not defined, and generate unsafe data is true, that they can be auto generated similar to baking accounts.

Can I skip? I actually want to deprecate account autogeneration. I think generation of accounts should happen when you create the yaml file (with mkchain or otherwise).


Tags analytics

Add design changes

@aman-riaz is this an old one?

Yes, this is old. Closing issue.


Adjacent month class not showing with different interval lengthOfTime

I tried to make a weekly calendar by setting this length of time:
lengthOfTime: {   months: null,   days: 7,   interval: 7 }
And it's working fine, but it doesn't add the adjacentmonth class to the days of the adjacent months!

Hi @Mattia-Nocerino, if at all possible could you submit a PR with a reproducible test case for me to ID the bug in question? I think the problem here is that you specified a "weeks" interval and are expecting months logic to exist. I'm not sure if adjacentMonths makes any sense in a weekly calendar context.
Some weeks could have two months within them, but if you're able to come up with a way that makes sense, please submit the PR and I'd be happy to review it.


LightningCSS compression not working

The shorthand compression of LightningCSS is not working: https://lightningcss.dev/minification.html#shorthands
.myclass {         border-width:0;         border-style:solid;         border-color:#e5e7eb; }
gets compressed to
.myclass{border-width:0;border-style:solid;border-color:#e5e7eb}
It should instead be compressed to
.myclass{border:0 solid #e5e7eb}

It's not released yet, expect in the next version v2.3.0.

@J05HI Fixed the latest astro-compress v2.2.24 and @playform/compress v0.0.6 Can you give it a go ?


Outlook 2016 - blows out the background container

In the Outlook 2016 (Office 365) desktop application for PCs, the template blows out the background on either side of the email container. This makes it look like a blank email unless you use the horizontal scroll bar to find the body of the email way off to the right.

I'm not having this problem with Outlook 2016.

Here's a screenshot. The viewing pane seems to get forced into full width, so the content in the middle is way off to the right (on some screens you can't even see it, and it looks like a blank email).
The behavior is tricky, though.
It doesn't happen in OWA, or on the Mac desktop client, and on the PC desktop client it doesn't happen all the time. I'll see it like this, then come back to my computer later and it will look just fine. When I restart Outlook it goes back to being weird.

Right from my head without testing, can you set a fix with to the body, center tags @natalubs ?


HTTP2: Add protection against remote control frames that are triggere…

…d by a remote peer
Motivation:
Due how http2 spec is defined it is possible by a remote peer to flood us with frames that will trigger control frames as response, the problem here is that the remote peer can also just stop reading these (while still produce more of these) and so may drive us to the pointer where we either run out of memory or burn all CPU. To protect against this we need to implement some kind of limit that will tear down connections that cause the above mentioned situation.
See CVE-2019-9512 / CVE-2019-9514 / CVE-2019-9515
Modifications:

Add Http2ControlFrameLimitEncoder which limits the number of queued control frames that were caused because of the remote peer.
Allow to insert ths Http2ControlFrameLimitEncoder by setting AbstractHttp2ConnectionBuilder.encoderEnforceMaxQueuedControlFrames(...) to a number higher then 0. The default is 10000 which provides some protection by default but will hopefully not cause too many false-positives.
Add unit tests

Result:
Protect against DDOS due control frames. Fixes CVE-2019-9512 / CVE-2019-9514 / CVE-2019-9515 .

This was reviewed by the Netty team privately as it fixes a security issue


Macro not firing

Hi, great work on the keyboard, I really love it.
I'm on a late 2023 Mac running Sonoma. I have some shortcuts for switching to different workspaces:

I wanted to make these as macros so that I could have the Hotkeys (1 and 2 for example) run them in 1 button.
What I did was this:

Add them to the list of Macros under Edit macros the in the GUI mapper

Assign them to the desired keys in the GUI mapper

Flash the new firmware successfully onto the keyboard

However, running them yields wrong/no results:

Running the first hotkey (1), just produces an F1 action which displays mission control
2 does nothing

I tried to add an FN into the macro to see if it would help but it didn't, same result. The reason being is that on the Adv360 I do have to press FN to get to the actual F1/2/3 keys, but on my mac keyboard or the Typematrix, I just do Shift + F1.

This is my current config: https://github.com/Odaym/Adv360-Pro-ZMK/tree/V3.0
Any help would be appreciated, thanks a lot!

Thanks for the response, so Macros basically are keys in succession, there can be no holding down this key and pressing down that key meanwhile.
I opened an issue in the Keymap-editor repo but if you have any experience with it? would it look something like this? Basically a Macro in itself as well but it has Press/Tap options

Thanks!

Macros can have press, tap and release options. You'll want to use &macro_press LSHFT, &macro_tap F1, &macro_release LSHFT

ok clear, well I'll try this today and will write back what and how it works, but let me just keep this open till then, thanks


1412/fix-get-widgets

Ticket: #1412
Reviewer: @jarednova
Issue
When Timber::get_widgets() is called more than once, a fatal error occurs:
Fatal error: Uncaught LogicException: Function "dynamic_sidebar" is already registered.

As @danimbrogno mentioned, if the function is being registered twice in Twig, it causes a LogicException to trigger. Because that exception is not catched, a fatal error is thrown.
Solution
By wrapping $twig->addFunction into a try/catch block, we can ignore this exception. Although there might be multiple registered FunctionWrapper instances with the same function name, it doesn’t get added to Twig.
But! We don’t have to use FunctionWrapper for Timber::get_widgets().
I changed get_widgets() method to use Helper::ob_function instead of FunctionWrapper. Because get_widgets() is normally called when we build up our context (http://timber.github.io/timber/#widgets), we can use ob_function. As I see it, there would be no easy way to call get_widgets() from inside a Twig template anyways, so I guess this is a safe way to go?
Considerations
I’m still thinking about a use case for FunctionWrapper, and I can’t find one yet. Especially if support for using FunctionWrapper to make a function available to Twig will be removed in version 1.4. What will be the difference to just using Helper::ob_function then? Maybe I still don’t get the concept behind it.
Testing
Manual test with two registered sidebars:
$context['sidebar1'] = Timber::get_widgets('sidebar-1');
$context['sidebar2'] = Timber::get_widgets('sidebar-2');

Thanks @gchtr! I added a test and merged this in under #1438


Support sparse blas (spblas)

Sparse blas is a part of BLAS Technical Forum Standard
These libs should be support:

librsb by default for its LGPLv3 license
MKL for CPU
cuSPARSE for GPU

This library is about bindings to standard BLAS. I am interested in Sparse BLAS as well, but I could not find a common standardized interface like BLAS. I started doing something here as part of Neo, a higher level library, but it is just the beginning.

(I closed the issue because it is not relevant to these bindings, but I would be interested in developing Sparse BLAS bindings as a separated library)

All right. Is unicredit an organization of  nim math repositories? Will you create a "nimspblas" repository?

No, Unicredit is a bank group :-) I can create a nimspblas repository, but at the moment I don't know what to put in there. You probably know much more than me on sparse BLAS. Is there a unified interface like BLAS? Do you have a reference for that?

sparse matrix has some format csr,csc,coo... However, handling format is library's job, so zgemv of blas will become mkl_sparse_z_mv of mkl and blas_zusmv of librsb. That seems easy.
[1] function list of mkl https://software.intel.com/en-us/mkl-developer-reference-c-inspector-executor-sparse-blas-execution-routines
[2] function list of librsb https://home.mpcdf.mpg.de/~mima/librsb-1.2.0-rc4/doc/html/group__rsb__doc__sparse__blas.html

I don't think I am in a position to create anything for sparse BLAS right now. Unfortunately, the differences between interfaces are too big (for instance, for matrix/vector product, compare the signatures in https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-mv and https://home.mpcdf.mpg.de/~mima/librsb-1.2.0-rc4/doc/html/group__rsb__doc__sparse__blas.html#gafb4d039eb5319613ed30db7fb323278c ). And this is without even considering the CUDA version.
All in all, I think the best way to proceed would be:

to create MKL bindings
to create bindings to libsrb
to create a wrapper that abstracts the differences and puts a nimish interface on top of all of these.

All of that is a lot of work, that I cannot commit to doing right now. It is an interesting project, and if it ever starts I'd be interested in integrating parts of it inside Neo, but if you are really interested in that, I suggest that you work on this yourself.

What's the difference between this and Neo?
By the way, any of them support Windows?

This library is a binding for the BLAS interface. Neo is a higher level library about linear algebra, that uses this under the hood, as well as CUDA bindings and so on.
I think the libraries should work on Windows, but I do not use it, so I cannot tell you much more.


slang_gpt duplicate keys when there are modifiers

Hi, I've recently started using slang. And it's a great solution for flutter localization :)
I keep my translations in a yaml format. Whenever there are modifiers in a key, slang_gpt adds the same key both with and without modifiers. Example:
Base Locale:
locale(map):
  tr: "Turkish"
  en: "English"

Generated:
locale(map):
  tr: "Turkish"
  en: "English"
locale:
  tr: "Turkish"
  en: "English"

GPT logs show no duplication. The duplication seems to arise when applyMapRecursive from package:slang/src/runner/apply.dart is called on line 293 in package:slang_gpt/lib/runner.dart.
      result = applyMapRecursive(
        baseMap: originalTranslations,
        newMap: response.jsonMessage,
        oldMap: result,
        verbose: false,
      );

When I call print before and after this line,
Before:
result = {}

After:
result = {
  test(context=SomeContext): {please: Bitte, clear: Löschen},
  test: {please: Bitte, clear: Löschen}
}

Fixed in slang_gpt 0.10.1


any advice about how to  control robot moving under a specified path（including vec acceleration）

I read your code and learn a lot.
now I meet a issue, I need to executing a path from 'a' to 'b' with specified time,velocity，acceleration. any idea how to control robot?
thanks.

Can you elaborate on your question? Like, how is the path defined, a simple straight line or an analytical curve connecting 'a' and 'b'? Will the velocity varies along the path? And what robot model are you using in your simulation?
In Gazebo, there is no direct way of writing speed to a robot, but only through the force or torque on an object or joint, you need a PD or PID controller for your speed or position. I have a similar one in minimal_robot_gripper, it uses torque on a joint to control its position, in your case, it should be torque on the wheel, further the odometry of the robot.


Fix crash when undoing a tileset delete.

Fixes #557

Thanks for the pull request @kring!

:heavy_check_mark: Signed CLA found.

Reviewers, don't forget to make sure that:

[ ] Cesium for Unreal Samples works.

I pragmatically tried this out: In main, Undoing the deletion of a tileset causes a crash. In this branch, it does not cause a crash. So I'll merge that as an immediate fix for the upcoming release.
But as already mentioned in the original issue: The handling of the _tilesetIsDirty flag and the case of a tileset being nullptr are not entirely clear, and should be reviewed (asking questions that go far beyond "Does it crash?"). This, and the more general question of Undo-handling are now summarized in https://github.com/CesiumGS/cesium-unreal/issues/573


upgrade grafana

Signed-off-by: David J. M. Karlsen<EMAIL_ADDRESS>What this PR does / why we need it:
latest grafana release
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[X] DCO signed
[X] Chart Version bumped
[X] Variables are documented in the README.md

@cpanato

/lgtm


Add RBAC support for canal

Added RBAC to ubuntu-canal-ha CI job

ci check this

@chupsuk @jjungnickel @bogdando Can you folks review?


Missing Footer Links in new Dawn Theme

Hi,
I am trying to use the dawn theme which I installed from the ghost dashboard --> Settings --> Design --> Change Theme. At present, the latest dawn theme doesn't seem to be including any interactive links in the footer and I just see a copyright Blog Name text and Published by Ghost text. I am trying to add the following items to a customized footer.
1.) Github and Linkedin Icons pointing to my respective git and Linkedin profiles
2.) A custom copyright text
3.) Dark/Light Toggle button
For reference, please see the footer on the following two websites:
1.) https://treanches.digitalpress.blog/table-of-contents-ghostblog/ (dark/light theme toggle button)
2.) https://zerodya.net/hello-world/ (Git and Linkedin buttons)
Could someone kindly guide me to where in the dawn theme code base I should be adding these custom icons, text and social media URLs and dark/light mode settings?
Best Regards,
Dilip

Hey @diliprk,
The secondary navigation is supported in the footer of Dawn theme, which you can add any link in Settings > Navigaion on your dashboard.
If you're looking to add those custom elements, the footer code can be found in default.hbs template of the theme. The exact location of the code is here.
We ask that you please do not use GitHub for support or feature requests 😄. We use GitHub solely for bug-tracking and on-going feature development.
Our forum is a great place to get community support, plus it helps create a central location for searching problems/solutions.
Thanks!


Move upcoming_aws table annual_work_seminar table.

When monday is passed, hippo should move all AWS on upcoming_aws table to annual_work_seminar table.

This has been fixed.


Side effect: I log everything that happens on my zfs and no files are deleted, but put in a snapshot.

Side effect: I log everything that happens on my zfs and no files are deleted, but put in a snapshot.
Could you try at once when the script is loaded and then have a switch between the two branches?
It would mitigate the side effect and still fix the issue.
Originally posted by @whinette in https://github.com/Nandaka/PixivUtil2/issues/548#issuecomment-549584924

not sure on how making branches @github as I don't like remote branches, also it was before the pixiv changes it layout, but I guess it won't have any effect as I put a test section to check it able to create a directory with existing encoding.
https://github.com/Nandaka/PixivUtil2/commit/9363e926aba0334cd2d5912ea6594b2d23b1c326#diff-7a612caa8f02f7c30e49d68a8c1ab43fR171
You can remove the whole try..catch section to simulate previous behaviour before pull request from @DukeValentine

About branches I meant between UTF-8 capable FS and uncapable. :)
I will take some time this week-end to look into it deeper

I've refactored the test to be run once, but I don't think there should be any problem to just force the string to be encoded in utf-8 all the time.
@Nandaka see PR https://github.com/Nandaka/PixivUtil2/pull/563

Somehow windows got screwed if the filename is encoded in utf8 last time I try that.

Ok I see. Thanks for the merge. :)


Trying to understand how glob.create is used in resolvePath

Hello,
I started using this yesterday for a project that has a lot of errors.  Somewhere around 7k.  Obviously that's a serious issue, but that's beyond the scope of this question.
What I found using this action was that it took about 45 minutes to process those 7k errors, and I've narrowed down the reason it takes so long to this line.
  const globber = await glob.create(`**/${normalizedFilename}.*`, {
    followSymbolicLinks: followSymlink
  })

In my case followSymlink is false.  Also, in my case, the normalizedFilename is the full path to the tested file (specifically, the github workspace path, but in my local test, I have the full path to the source on my drive outside of the repo path).
What happens is that glob.create() method returns this:
DefaultGlobber {
  patterns: [
    Pattern {
      negate: false,
      segments: [Array],
      trailingSeparator: false,
      searchPath: '/path/to/src/mikepenz/action-junit-report',
      rootRegExp: /\//,
      isImplicitPattern: false,
      minimatch: [Minimatch]
    }
  ],
  searchPaths: [ '/path/to/src/mikepenz/action-junit-report' ],
  options: {
    followSymbolicLinks: false,
    implicitDescendants: true,
    matchDirectories: true,
    omitBrokenSymbolicLinks: true,
    excludeHiddenFiles: false
  }
}

And so when looping through globber.globGenerator(), it never finds the files and so this code basically doesn't do anything, but worse, it's slow.  As I said, it takes 45 minutes to process my big terrible failing test result.
When I change it to this:
  const globber = await glob.create(normalizedFilename, {
    followSymbolicLinks: followSymlink
  })

its takes about 1.5 seconds to process my test result.
I had planned to write a PR to resolve this issue, but I don't understand the purpose of this method well enough to know that my adjustments will be the right solution.  It's not clear to me why one would search for **/${normalizedFilename}.*.

Maybe it makes sense to try fs.existsSync(normalizedFilename) first?
And then maybe fs.existsSync(``${process.env['GITHUB_WORKSPACE']}/${normalizedFilename}``) after that?
And then maybe a glob search for the file with any extension?
Maybe it makes sense to set a source path as a parameter rather than hunting for the files?

Here's the test I'm using for this:
# src/test.ts
import {parseTestReports} from './testParser'
(async () => {
  const testResult = await parseTestReports(
    'test',
    '',
    '/path/to/src/mikepenz/action-junit-report/results/test-result.xml',
    '',
    false,
    false,
    [],
    undefined,
    '',
    '',
    [],
    false,
    -1,
    true
  )

  console.log(testResult)
})()

And to run it:
time tsx ./src/test.ts

Unfortunately, I can't share my actual junit result file.  But I imagine any junit file will do as long as it has the full path or relative path to the source files.

Thank you for the report.
Unfortunately the junit output does not reference and include file path references. as a result, and a fallback solution to be able to reference errors to their source files, the action attempts to find the class files with the glob pattern. As there is no clear path of identifying the file associated with an error this is not the most efficient for sure.
Especially as the globber goes only by normalized file name, and based on the source language this might not be a valid path, so it has to recursively search all places to hopefully find the class file.
it could be an optimisation as you note though to first try and see if there is a direct match. In the case of your usecase, is this applicable?

Would it be possible if you run the action in debug and see if the output paths would point directly at the correct files?
  core.debug("Resolving path for ${fileName}")

If that's the case, we might actually also be able to only adjust the glob prefix from **/ to not going from any root.

Can you please test v5.0.0-a03 ?

Closing due to inactivity


Prevent unnecessary outer directory searches

When searching up a directory tree without the added checks, every directory may be scanned until the outermost directory is reached even when the project files have already been found. This can cause avoidable permission errors when using the default options and thus typedoc to break on out-of-the-box builds for the simplest of projects. Without these checks, typedoc will always error on some setups.

Stops the search when readme.md and package.json are found.
Stops the search when --readme = none and package.json is found.

I tried to clean things up but now it doesn't seem to read the "typedoc" name from the package.json in the tests. Need to do some more digging.

Sorry, I don't have time to investigate this. You've either changed the logic, have a bad test, or it's only reproducible on your system. Nothing jumped out at me when reviewing the changes thus it's probably not the problem but rather a symptom. I'd review the test case very meticulously and hope it's not aberrant behavior. Καληνύχτα!

@pro-src Thanks for contributing this. @spiltcoffee has cleaned up the issues so I'm going to close this PR.


Slider. Proper mouse handling

import androidx.compose.desktop.Window
import androidx.compose.material.Slider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue

fun main() = Window {
    var value by remember { mutableStateOf(5f) }
    Slider(
        value = value,
        valueRange = 0f..10f,
        onValueChange = { value = it }
    )
}

When we drag the slider with mouse, dragging don't start immedeately:
https://user-images.githubusercontent.com/5963351/106154944-327ae880-6191-11eb-9bc6-b3581d0e04c8.mp4
We should introduce proper mouse handling to Slider component. Because non-immediate start of dragging should only happened with touch gestures.
See also https://github.com/JetBrains/compose-jb/issues/320#issuecomment-769166209

Should be fixed in 1.0.0-beta5

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Updated Developer Notes & Conventions.

Corrected two spelling errors and added PascalCase for names that start with capital leters.

@DarqueWarrior,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Include the compiler in the default initialized docker-compose.yml

hacky fix can be found here: https://github.com/thepiwo/aepp-forgae-js/pull/1
notice this spawns 2 compilers and is therefor not a good solution.


[usmon 690]: Infrastructure to allow tls raw payload tests

What does this PR do?
The PR adds the support of running Raw Payload tests on the TLS http2.
The PR moves the raw payload test to the tracer package to allow us to use the tracer.
The PR sets the infrastructure to unify as much as possible the tests between plaintext and tls version.

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge

/merge -c


Stop coloring .meta

This removes the styling of .meta. It doesn't seem to be needed anymore. There is a small fix for JS.
Closes #17

Immeasurable thanks! Both from me, and every language-grammar developer I'm unofficially authorised to speak on behalf of. ❤


Rename Repository

The name secure Validator implies that this sets up everything entirely to have a secure set up. This is not necessarily the case - this repo should be used as a template to further make accomodations to ones individual setup.
I would propose renaming this to polkadot-validator-template

The word "secure" made it in there because this repo used to setup sentry nodes and VPN connections, which is no longer relevant, I guess. So I'm giving you an "aye" from my side. It's not really a "template", however.
I propose: polkadot-validator-setup


run-notebook create-container  - toomanyrequests

Hi,
When creating the docker image with run-notebook create-container, I received this error message.
What can I do ?
[Container] 2021/07/14 21:13:37 Running command docker pull -q ${BASE_IMAGE}
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Solved.
I just had to create a Docker Account and log in (on Docker Desktop with MacOS)

Hi @simonprudhomme, how did you solve this? I'm currently running this tool in sagemaker studio. So not really sure how can I login to my docker account from it.


Fails to link with gcc 4.9

I was trying to compile latest openmv (9ddaca073190744c9ce0023da9c56a7f5beab9f8) with arm-none-eabi-gcc 4.9.2 but it fails with the following error:
arm-none-eabi-cpp -P -E -DOPENMV1 omv/stm32f4xx.ld.S > /home/reinis/projects/ee/openmv/src/build/stm32f4xx.lds
arm-none-eabi-gcc -mcpu=cortex-m4 -mabi=aapcs-linux -mthumb -mlittle-endian -mfloat-abi=hard -mfpu=fpv4-sp-d16 -nostdlib -Wl,--gc-sections -Wl,-T/home/reinis/projects/ee/openmv/src/build/stm32f4xx.lds /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/CommonTables/arm_common_tables.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_sqrt_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_sqrt_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_sin_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_sin_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_cos_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_cos_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_sin_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/FastMathFunctions/arm_cos_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_mult_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_mult_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_scale_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_scale_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_mult_fast_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_mult_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_scale_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_inverse_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_sub_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_sub_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_mult_fast_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_sub_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_trans_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_trans_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_add_q15.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_init_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_add_f32.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_trans_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_init_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_add_q31.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/dsp/MatrixFunctions/arm_mat_init_q15.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_rng.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_uart.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_tim.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_pcd_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_adc.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_pwr.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_spi.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_gpio.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_hcd.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_ll_fmc.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_flash_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_cortex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_tim_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_adc_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_dma.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_ll_sdmmc.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_rtc.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_rtc_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_i2c.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_ll_usb.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_dma_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_sd.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_rcc.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_flash.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_sdram.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_pwr_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_i2c_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_usart.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_dcmi.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_pcd.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal_rcc_ex.o /home/reinis/projects/ee/openmv/src/build/sthal/src/stm32f4xx_hal.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/patch.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/spi.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/inet_pton.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/evnt_handler.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/inet_ntop.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/wlan.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/security.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/netapp.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/hci.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/cc3000_common.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/patch_prog.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/socket.o /home/reinis/projects/ee/openmv/src/build/cc3k/src/nvmem.o /home/reinis/projects/ee/openmv/src/build/fatfs/src/ff.o /home/reinis/projects/ee/openmv/src/build/fatfs/src/option/ccsbcs.o /home/reinis/projects/ee/openmv/src/build/omv/main.o /home/reinis/projects/ee/openmv/src/build/omv/xalloc.o /home/reinis/projects/ee/openmv/src/build/omv/array.o /home/reinis/projects/ee/openmv/src/build/omv/usbdbg.o /home/reinis/projects/ee/openmv/src/build/omv/systick.o /home/reinis/projects/ee/openmv/src/build/omv/sccb.o /home/reinis/projects/ee/openmv/src/build/omv/ov9650.o /home/reinis/projects/ee/openmv/src/build/omv/ov2640.o /home/reinis/projects/ee/openmv/src/build/omv/sensor.o /home/reinis/projects/ee/openmv/src/build/omv/rng.o /home/reinis/projects/ee/openmv/src/build/omv/stm32f4xx_hal_msp.o /home/reinis/projects/ee/openmv/src/build/omv/soft_i2c.o /home/reinis/projects/ee/openmv/src/build/omv/mutex.o /home/reinis/projects/ee/openmv/src/build/omv/sdcard_spi.o /home/reinis/projects/ee/openmv/src/build/omv/img/blob.o /home/reinis/projects/ee/openmv/src/build/omv/img/fmath.o /home/reinis/projects/ee/openmv/src/build/omv/img/haar.o /home/reinis/projects/ee/openmv/src/build/omv/img/imlib.o /home/reinis/projects/ee/openmv/src/build/omv/img/integral.o /home/reinis/projects/ee/openmv/src/build/omv/img/kmeans.o /home/reinis/projects/ee/openmv/src/build/omv/img/lab.o /home/reinis/projects/ee/openmv/src/build/omv/img/rainbow_tab.o /home/reinis/projects/ee/openmv/src/build/omv/img/median.o /home/reinis/projects/ee/openmv/src/build/omv/img/point.o /home/reinis/projects/ee/openmv/src/build/omv/img/ppm.o /home/reinis/projects/ee/openmv/src/build/omv/img/rectangle.o /home/reinis/projects/ee/openmv/src/build/omv/img/fast.o /home/reinis/projects/ee/openmv/src/build/omv/img/freak.o /home/reinis/projects/ee/openmv/src/build/omv/img/template.o /home/reinis/projects/ee/openmv/src/build/omv/img/font.o /home/reinis/projects/ee/openmv/src/build/omv/img/jpeg.o /home/reinis/projects/ee/openmv/src/build/omv/img/lbp.o /home/reinis/projects/ee/openmv/src/build/omv/img/eye.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_led.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_sensor.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_image.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_time.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_clock.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_wlan.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_socket.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_select.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_gpio.o /home/reinis/projects/ee/openmv/src/build/omv/py/py_spi.o /home/reinis/projects/ee/openmv/src/build/omv/py/uart.o /home/reinis/projects/ee/openmv/src/build/omv/py/mlx90620.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/st/system_stm32f4xx.o /home/reinis/projects/ee/openmv/src/build/cmsis/src/st/startup_stm32f407xx.o /home/reinis/projects/ee/openmv/src/build/micropython/py/map.o /home/reinis/projects/ee/openmv/src/build/micropython/py/gc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitinlinethumb.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objlist.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitcommon.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objfloat.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modgc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objmap.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objzip.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitnthumb.o /home/reinis/projects/ee/openmv/src/build/micropython/py/lexer.o /home/reinis/projects/ee/openmv/src/build/micropython/py/pfenv_printf.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objboundmeth.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objobject.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objstringio.o /home/reinis/projects/ee/openmv/src/build/micropython/py/stream.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objproperty.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modmicropython.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objstrunicode.o /home/reinis/projects/ee/openmv/src/build/micropython/py/lexerunix.o /home/reinis/projects/ee/openmv/src/build/micropython/py/builtin.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objfun.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modcmath.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objcomplex.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objclosure.o /home/reinis/projects/ee/openmv/src/build/micropython/py/builtinevex.o /home/reinis/projects/ee/openmv/src/build/micropython/py/parsenumbase.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modio.o /home/reinis/projects/ee/openmv/src/build/micropython/py/obj.o /home/reinis/projects/ee/openmv/src/build/micropython/py/vstr.o /home/reinis/projects/ee/openmv/src/build/micropython/py/compile.o /home/reinis/projects/ee/openmv/src/build/micropython/py/nlrx86.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modarray.o /home/reinis/projects/ee/openmv/src/build/micropython/py/argcheck.o /home/reinis/projects/ee/openmv/src/build/micropython/py/nlrx64.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objenumerate.o /home/reinis/projects/ee/openmv/src/build/micropython/py/vm.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modmath.o /home/reinis/projects/ee/openmv/src/build/micropython/py/builtintables.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objtype.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objdict.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modsys.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objtuple.o /home/reinis/projects/ee/openmv/src/build/micropython/py/asmarm.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objcell.o /home/reinis/projects/ee/openmv/src/build/micropython/py/runtime.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objset.o /home/reinis/projects/ee/openmv/src/build/micropython/py/smallint.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objfilter.o /home/reinis/projects/ee/openmv/src/build/micropython/py/unicode.o /home/reinis/projects/ee/openmv/src/build/micropython/py/parsenum.o /home/reinis/projects/ee/openmv/src/build/micropython/py/sequence.o /home/reinis/projects/ee/openmv/src/build/micropython/py/nativeglue.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitglue.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objmodule.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objint_mpz.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objslice.o /home/reinis/projects/ee/openmv/src/build/micropython/py/repl.o /home/reinis/projects/ee/openmv/src/build/micropython/py/lexerstr.o /home/reinis/projects/ee/openmv/src/build/micropython/py/builtinimport.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objint.o /home/reinis/projects/ee/openmv/src/build/micropython/py/formatfloat.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitcpy.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objgetitemiter.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitnx86.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objstr.o /home/reinis/projects/ee/openmv/src/build/micropython/py/bc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/asmthumb.o /home/reinis/projects/ee/openmv/src/build/micropython/py/qstr.o /home/reinis/projects/ee/openmv/src/build/micropython/py/nlrthumb.o /home/reinis/projects/ee/openmv/src/build/micropython/py/opmethods.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objexcept.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitnx64.o /home/reinis/projects/ee/openmv/src/build/micropython/py/showbc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objarray.o /home/reinis/projects/ee/openmv/src/build/micropython/py/stackctrl.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modcollections.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitbc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/mpz.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitpass1.o /home/reinis/projects/ee/openmv/src/build/micropython/py/asmx64.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objrange.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objbool.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objnone.o /home/reinis/projects/ee/openmv/src/build/micropython/py/binary.o /home/reinis/projects/ee/openmv/src/build/micropython/py/nlrsetjmp.o /home/reinis/projects/ee/openmv/src/build/micropython/py/parse.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objreversed.o /home/reinis/projects/ee/openmv/src/build/micropython/py/parsehelper.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objgenerator.o /home/reinis/projects/ee/openmv/src/build/micropython/py/malloc.o /home/reinis/projects/ee/openmv/src/build/micropython/py/emitnarm.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objint_longlong.o /home/reinis/projects/ee/openmv/src/build/micropython/py/asmx86.o /home/reinis/projects/ee/openmv/src/build/micropython/py/pfenv.o /home/reinis/projects/ee/openmv/src/build/micropython/py/scope.o /home/reinis/projects/ee/openmv/src/build/micropython/py/objnamedtuple.o /home/reinis/projects/ee/openmv/src/build/micropython/py/modstruct.o /home/reinis/projects/ee/openmv/src/build/micropython/stm32f4xx_it.o /home/reinis/projects/ee/openmv/src/build/micropython/string0.o /home/reinis/projects/ee/openmv/src/build/micropython/usbd_conf.o /home/reinis/projects/ee/openmv/src/build/micropython/usbd_desc_cdc_msc.o /home/reinis/projects/ee/openmv/src/build/micropython/usbd_cdc_interface.o /home/reinis/projects/ee/openmv/src/build/micropython/usbd_msc_storage.o /home/reinis/projects/ee/openmv/src/build/micropython/pendsv.o /home/reinis/projects/ee/openmv/src/build/micropython/bufhelper.o /home/reinis/projects/ee/openmv/src/build/micropython/usb.o /home/reinis/projects/ee/openmv/src/build/micropython/printf.o /home/reinis/projects/ee/openmv/src/build/micropython/gchelper.o /home/reinis/projects/ee/openmv/src/build/micropython/gccollect.o /home/reinis/projects/ee/openmv/src/build/micropython/pybstdio.o /home/reinis/projects/ee/openmv/src/build/micropython/readline.o /home/reinis/projects/ee/openmv/src/build/micropython/pyexec.o /home/reinis/projects/ee/openmv/src/build/micropython/help.o /home/reinis/projects/ee/openmv/src/build/micropython/input.o /home/reinis/projects/ee/openmv/src/build/micropython/import.o /home/reinis/projects/ee/openmv/src/build/micropython/lexerfatfs.o /home/reinis/projects/ee/openmv/src/build/micropython/flash.o /home/reinis/projects/ee/openmv/src/build/micropython/diskio.o /home/reinis/projects/ee/openmv/src/build/micropython/storage.o /home/reinis/projects/ee/openmv/src/build/micropython/file.o /home/reinis/projects/ee/openmv/src/build/micropython/rtc.o /home/reinis/projects/ee/openmv/src/build/micropython/pin.o /home/reinis/projects/ee/openmv/src/build/micropython/timer.o /home/reinis/projects/ee/openmv/src/build/micropython/servo.o /home/reinis/projects/ee/openmv/src/build/micropython/lib/libm/atanf.o /home/reinis/projects/ee/openmv/src/build/micropython/lib/libm/atan2f.o /home/reinis/projects/ee/openmv/src/build/micropython/lib/libm/math.o /home/reinis/projects/ee/openmv/src/build/micropython/lib/libm/mathsincos.o /home/reinis/projects/ee/openmv/src/build/micropython/lib/libm/fmodf.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/core/src/usbd_core.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/core/src/usbd_ctlreq.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/core/src/usbd_ioreq.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/class/cdc_msc_hid/src/usbd_cdc_msc_hid.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/class/cdc_msc_hid/src/usbd_msc_bot.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/class/cdc_msc_hid/src/usbd_msc_scsi.o /home/reinis/projects/ee/openmv/src/build/micropython/usbdev/class/cdc_msc_hid/src/usbd_msc_data.o  -o /home/reinis/projects/ee/openmv/src/build/openmv.elf
/usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: /home/reinis/projects/ee/openmv/src/build/openmv.elf section `.isr_vector' will not fit in region `FLASH_ISR'
/usr/lib/gcc/arm-none-eabi/4.9.2/../../../../arm-none-eabi/bin/ld: region `FLASH_ISR' overflowed by 112 bytes
collect2: error: ld returned 1 exit status
Makefile:256: recipe for target '/home/reinis/projects/ee/openmv/src/build/openmv.elf' failed
make: *** [/home/reinis/projects/ee/openmv/src/build/openmv.elf] Error 1

I'm not sure about the exact cause of this error, but I can report that the same code compiles cleanly on gcc 4.8. Feel free to close this issue- I'm reporting it so others can google the error message :>

Fixed, you can compile with the 4.9 now, I think the old toolchain generated smaller object files that fit into the ISR section, anyway, I remove more object files from the ISR so it shouldn't matter anymore.


chore(deps): update common-dev-assets digest to 54b3d7e

This PR contains the following updates:

Package
Update
Change

common-dev-assets
digest
4a75955 -> 54b3d7e

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

GitHub release
v1.1.0

Your semantic-release bot :package::rocket:


R: Add Introduction to Statistical Learning by Hastie et al

Got to have this classic by Hastie, Tibshirani et al

great addition! but need to put the list in alphabetical order; our linter is not so fancy that it ignores "The " or "A " at the beginning of titles.


Revert "Revert "[svc-cfg] Move ServiceConfigChannelArgFilter to promises" (#33508)"

This reverts commit a194f145e4e03bfee99ea6ae37eb62d7d8c73e06.

Since it's a low traffic file and merging isn't urgent, I'm going to leave it until I get back.