Is verify_cache still needed?

Hitting a bug with verify_cache
    def verify_cache(self, cache_names):
        bad_caches = []
        for cache_name in cache_names.values():
            cache_dir = path.join(self.cache_dir, cache_name)
            if path.exists(cache_dir):
                cache_subdirs = set(listdir(cache_dir))
                cache_int_subdirs = set([int(name) for name in cache_subdirs])
                if len(cache_subdirs) != len(cache_int_subdirs):
                    bad_caches.append(cache_name)

        if len(bad_caches) > 0:
            raise ValueError("Caches %s have duplicate int/str directories" %
                             str(bad_caches))

/demeter/users/ahujaa01/src/hammerlab/cohorts/cohorts/load.pyc in verify_cache(self, cache_names)
    254             if path.exists(cache_dir):
    255                 cache_subdirs = set(listdir(cache_dir))
--> 256                 cache_int_subdirs = set([int(name) for name in cache_subdirs])
    257                 if len(cache_subdirs) != len(cache_int_subdirs):
    258                     bad_caches.append(cache_name)

ValueError: invalid literal for int() with base 10: 'TCGA-55-7907'

Is this still needed? Seems to assume that the sample ids are ints?

Oops, yeah, it was a way for me to ensure that I didn't have 0040 and 40 in the same directory, which is particularly useful immediately post-refactor.
I didn't consider the impact to string IDs that aren't int-able. What if we rename to verify_int_cache and only do this for int-able IDs? Also open to removing it.

I didn't consider the impact to string IDs that aren't int-able. What if we rename to verify_int_cache and only do this for int-able IDs? Also open to removing it.

Not sure I understand - shouldn't the IDs stay as strings (with padding if necessary) the whole time?

Sorry, I wasn't clear: they do stay as strings the whole time, and if I nuked my cache after every change this wouldn't be an issue. But I wanted to ensure that if someone hadn't nuked their cache, and ended up with 40 from before and 0040 currently, that would be caught.

if I nuked my cache after every change this wouldn't be an issue

Is it every change or this latest to ensure they stay as strings? If so, I'd say let's remove this as it would be fine to have to recreate some caches this time.

I agree that it would be fine to have to recreate some caches; I added this in the event that someone forgot to. (Because I did forget to and this issue created a problem for me.)
That being said, in light of having switched sample_id to patient_id, old caches should be broken anyway. So sure, let's remove this.


Blog post introducing kwok

mirror from https://github.com/kubernetes/website/pull/39653

/retitle [WIP] Add blog post for introducing kwok
Informally LGTM (I'll try to take more of a look later)

/cc @Huang-Wei

@wzshiming I haven't compared the content with the k/website one thoroughly. As long as the mirrored version resolved all the comments, I'm fine with this PR as well.

Yes, both are the same.

Is this still a work in progress? What needs to happen before it's ready to review?

Is this still a work in progress? What needs to happen before it's ready to review?

It's ready for reviewing.
/retitle Blog post introducing kwok

/hold cancel


Fix the start of the arrow

set the start part of the arrow at a fixed point to be able to incorporate it into a wind rose

Hi @Ntorresb, thank you for your suggestion! The formal process for suggesting new samples is to post them on our feedback site. There is a specific section for developer resources as well. I will close this issue for now.


Module not found

API Platform version(s) affected:2.5.4
Description
I have downloaded the API platform distribution 2.5.4 and followed the steps mentioned in "Installing the Framework" section. When I run the localhost, I get the following error:
"
Failed to compile
./src/index.js
Module not found: Can't resolve 'font-awesome/css/font-awesome.css' in '/usr/src/client/src'
This error occurred during the build time and cannot be dismissed.
"
Can someone please help to rectify this problem?

I detected the problem, but I don't know how to solve it.
I entered the client docker machine and tried to build yarn.
/usr/src/client # yarn build

yarn run v1.22.0
$ react-scripts build
Creating an optimized production build...
Failed to compile.
./src/index.js
Cannot find module: 'font-awesome/css/font-awesome.css'. Make sure this package is installed.
You can install this package by running: yarn add font-awesome/css/font-awesome.css.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Then I tried to follow the advice from yarn to add the package.
/usr/src/client # yarn add font-awesome/css/font-awesome.css
but it gave me this other error.

yarn add v1.22.0
[1/4] Resolving packages...
error An unexpected error occurred: "https://registry.yarnpkg.com/font-awesome%2Fcss/font-awesome.css: Request "https://registry.yarnpkg.com/font-awesome%2Fcss/font-awesome.css\" returned a 405".
info If you think this is a bug, please open a bug report with the information provided in "/usr/src/client/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

Hope someone can give us more advice

Hi again,
I managed to solve the problem.
I entered the client container and run:
/usr/src/client # yarn add font-awesome
The package manager did a lot of stuff

yarn add v1.22.0
[1/4] Resolving packages...
[2/4] Fetching packages...
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
info<EMAIL_ADDRESS>The platform "linux" is incompatible with this module.
info<EMAIL_ADDRESS>is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>- 3".
warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning "react-scripts > @typescript-eslint/eslint-plugin ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>|| >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta".
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─<EMAIL_ADDRESS>info All dependencies
└─<EMAIL_ADDRESS>Done in 36.95s.

And it's done! Now I can access https://localhost without problems.


Normalize the package description

With respect to other Atom IDE packages such as ide-java or ide-php. The fact that this plugin uses the RLS in the backend is an implementation detail.

Thanks!


NIFCELL:Class_6 missing label but has abbreviation

http://matrix.neuinfo.org:9000/scigraph/graph/neighbors/NIFCELL:Class_6?blankNodes=false&project=*&direction=BOTH&depth=1
"Cochlear nucleus chestnut cell"

NIFCELL:nlx_cell_200903010 seems like it might be a replacement, however cochlear nucleus != neocortex....

https://books.google.com/books?id=rfcRDAAAQBAJ&pg=PA134&lpg=PA134&dq=chestnut#v=onepage&q=chestnut&f=false


Improve main menu screen

Description
Task: Improve main menu screen
Feature: #300 #359
This task is related to improving the main menu screen by improving the background and modifying the logo.
Dependencies
No dependencies
Milestones
List of steps that need to be completed for this task (Sept 26)

[ ] Creating a Main menu background display class (made it easier when implementing) Sept 26)
[ ] Add a background instead of plain colour (Sept 28)
[ ] Design a new logo (Sept 28)
[ ] Add the new logo (Sept 28)

Completion Deadline: Sept 28
Documentation

Map design

Member

@Sarahkhalek

Closed by #377


sf org permset assign -b does not work with a User Alias

Summary
sf org permset assign -b  does not work with a User Alias
Steps To Reproduce
Query for a User Alias:
~  $ sf data query --query "SELECT Username, Alias FROM User WHERE Username =<EMAIL_ADDRESS>-o<EMAIL_ADDRESS>Querying Data... ⣽
 USERNAME                      ALIAS
 ───────────────────────────── ─────
<EMAIL_ADDRESS>UUser
Querying Data... done

Assigning the permission set on behalf of an alias results in an error:
~  $ sf org permset assign -b UUser -n Edit_Account_Enable_External_Account_Hierarchy -o<EMAIL_ADDRESS>Error (1): No record found for SELECT Id FROM User WHERE Username='UUser'

Assigning the permission set on behalf of a username is successful:
~  $ sf org permset assign -b<EMAIL_ADDRESS>-n Edit_Account_Enable_External_Account_Hierarchy -o<EMAIL_ADDRESS>
 Username                      Permission Set Assignment
 ───────────────────────────── ──────────────────────────────────────────────
<EMAIL_ADDRESS>Edit_Account_Enable_External_Account_Hierarchy

Expected result
Per the command help, the -b flag should accept an Alias to indicate a User.
~  $ sf org permset assign -h
Assign a permission set to one or more users of a scratch org.

USAGE
  $ sf org assign permset -n <value> -o <value> [--json] [-b <value>] [--api-version <value>]

FLAGS
  -b, --on-behalf-of=<value>...  Username or alias to assign the permission set to.

Actual result
Assigning the permission set on behalf of an alias results in an error:
~  $ sf org permset assign -b UUser -n Edit_Account_Enable_External_Account_Hierarchy -o<EMAIL_ADDRESS>Error (1): No record found for SELECT Id FROM User WHERE Username='UUser'

System Information
{
  "architecture": "darwin-arm64",
  "cliVersion"<EMAIL_ADDRESS>  "nodeVersion": "node-v18.15.0",
  "osVersion": "Darwin 22.5.0",
  "rootPath": "/Users/bchong/.local/share/sf/client/2.15.9-ffa76de",
  "shell": "zsh",
  "pluginVersions": [
    "@mshanemc/plugin-streaming 1.1.7 (user)",
    "@mshanemc/sfdx-sosl 1.1.0 (user)",
    "@oclif/plugin-autocomplete 2.3.10 (core)",
    "@oclif/plugin-commands 3.0.4 (core)",
    "@oclif/plugin-help 6.0.4 (core)",
    "@oclif/plugin-not-found 3.0.2 (core)",
    "@oclif/plugin-plugins 3.9.4 (core)",
    "@oclif/plugin-search 1.0.4 (core)",
    "@oclif/plugin-update 4.1.3 (core)",
    "@oclif/plugin-version 2.0.3 (core)",
    "@oclif/plugin-warn-if-update-available 3.0.2 (core)",
    "@oclif/plugin-which 3.0.6 (core)",
    "@salesforce/cli 2.15.9 (core)",
    "apex 2.3.20 (core)",
    "auth 2.8.25 (core)",
    "data 2.6.1 (core)",
    "deploy-retrieve 1.19.2 (core)",
    "info 2.6.51 (core)",
    "limits 2.3.41 (core)",
    "login 1.2.39 (core)",
    "marketplace 0.3.1 (core)",
    "org 2.11.5 (core)",
    "schema 2.3.31 (core)",
    "settings 1.4.36 (core)",
    "sobject 0.2.14 (core)",
    "source 2.10.45 (core)",
    "telemetry 2.3.8 (core)",
    "templates 55.5.17 (core)",
    "trust 2.6.22 (core)",
    "user 2.3.39 (core)",
    "shane-sfdx-plugins 4.43.0 (user)"
  ]
}

Additional information

This is working as designed.
"Alias" in the CLI context means an alias assigned to that username by the CLI.  E.g., sf org create user --set-alias me or sf org create scratch --set-alias testOrg  It is completely different from a user alias within a Salesforce org.

@shetzel  thanks for the feedback, although I'm not sure that it makes sense to me.
First, the help text uses different phrases for "alias" in each context ("org alias" vs "Username or alias".)
FLAGS
  -b, --on-behalf-of=<value>...  Username or alias to assign the permission set to.
  -o, --target-org=<value>       (required) Scratch org alias or login user.

Second, since the --target-org value is required, it assumes the org's logged in username when -b is not specified.
  $ sf org list
   Type    Alias                         Username
   Scratch org-alias<EMAIL_ADDRESS>   Scratch org-alias-b<EMAIL_ADDRESS>
Note that using the org alias automatically sets the permission set to the username.
 $ sf org permset assign -n Edit_Account_Enable_External_Account_Hierarchy -o org-alias
=== Permsets Assigned

 Username                      Permission Set Assignment
 ───────────────────────────── ──────────────────────────────────────────────
<EMAIL_ADDRESS>Edit_Account_Enable_External_Account_Hierarchy

And it would not make much sense to provide a different org alias than that of the target org
$  sf org permset assign -n Edit_Account_Enable_External_Account_Hierarchy -o org-alias -b org-alias-b
Error (1): No record found for SELECT Id FROM User WHERE<EMAIL_ADDRESS>
In my opinion, it makes more sense to be able to automate the assignment of a permission set to a User's Alias across multiple environments since the username changes. Comparing the two examples below, the second one would potentially require querying the username in every sandbox environment:
sf org permset assign -n Perm_Set -o dev -b SalesOpsUser
sf org permset assign -n Perm_Set -o uat -b SalesOpsUser
sf org permset assign -n Perm_Set -o prod -b SalesOpsUser

vs
sf org permset assign -n Perm_Set -o dev -b<EMAIL_ADDRESS>sf org permset assign -n Perm_Set -o uat -b<EMAIL_ADDRESS>sf org permset assign -n Perm_Set -o prod -b<EMAIL_ADDRESS>
Thanks for the consideration.

Both flag values are usernames or CLI aliases for usernames.  All CLI commands that target Salesforce orgs act as the specified username, which comes from a config variable or explicitly set as a flag on the command.  As part of creating a scratch org an admin user is also created and that is what the CLI uses for API requests.  So "Scratch org alias" in the command help is referring to an alias that you can specify for the admin user when you create the scratch org.
When assigning permsets, you can assign them to yourself (i.e., as the person executing the command) or you can assign the permset to another user (by username) in the target org.  This way, you can create test users from the CLI that may not have permissions to assign permsets to themselves, so an admin user does it for them as part of setup steps.  E.g., sf org create user -a testUser1.  Then you can sf org permset assign -n MyPermSet -b testUser1.


Date Picker allows user to type invalid dates

Describe the bug
Date Picker allows user to type invalid dates
To Reproduce
Steps to reproduce the behavior:

Go to https://demos.blazorbootstrap.com/form/date-input
type invalid date into any DateInput field
See date being wrong.

Expected behavior
Date should not allow invalid numbers
Screenshots

Versions (please complete the following information):
Reproducible on your demo site
Sample code
Your own site
GitHub repo
blazorbootstrap
Desktop (please complete the following information):
irrelevant
Smartphone (please complete the following information):
irrelevant
Additional context
reproducible on your own site

@kevon-vems Thank you for using BlazorBootstrap. Assuming that your local date format is mm/dd/yyyy, that is why it is allowing 02/31/2025. What is your machine locale and date format?

@kevon-vems Please record the screen and share it. This will help us understand your issue better.

You're kidding right?  Feb 31 does not exist.  Feb has 28 days, and 29 days in a leap year.
The component should understand the concept that a month has anywhere between 28 and 31 days depending on the month and year

@kevon-vems I didn't realize the month and day selected. This is the default behavior of <input type="date" />. I will check.


Migrations don't need to know about the internal Block structure of a StreamField.

Because the actual database backend of a StreamField is just a simple LONGTEXT populated by json-serialized block contents, the database does not need to know about changes made to the Block structure within the StreamField.
However, since Wagtail currently does provide that information to the migrations, this causes complex StreamField instances to generate gargantuan migrations whenever even the tiniest change is made to a single Block used by the field. Here's an example. This one model's migration code is nearly 500,000 characters.
And another half megabyte of text will be repeated in each subsequent migration if even a single field in a single Block has a single attribute changed. This is highly undesirable, and as far as I can tell, completely pointless. The auto-generated migration files don't need to care about the internal structure of a StreamField; only manually written migrations that migrate the data from an old format to a new one need to care, and those don't need to be half a megabyte of code.
I'm not yet entirely sure how best to remedy this, but I think it will have something to do with StreamField.deconstruct().:
def deconstruct(self):
    name, path, _, kwargs = super(StreamField, self).deconstruct()
    block_types = self.stream_block.child_blocks.items()
    args = [block_types]
    return name, path, args, kwargs

I don't think there's any good reason for it to care about its child blocks. Though while I do have a lot of experience with dealing with, and hacking around, StreamFields, I'm not an expert. Maybe I'm missing something?

Hi @coredumperror,
As mentioned on #3710, this is line with Django's principle of preserving all properties of a model field within migrations, not just the properties that directly affect the database schema. This ensures that any Python code in the migration, particularly for data migrations, has access to a 'frozen' version of the ORM model as it existed at that point in the migration path, regardless of how much the real model in models.py may have moved on from there.
To be honest, your example code shows a level of configurability that goes way beyond anything I anticipated, or would recommend. The purpose of Wagtail as a CMS is to provide a separation between content editing and design decisions - hooking up every conceivable design choice to a StreamField element doesn't achieve that.

@gasman following up on this:

your example code shows a level of configurability that goes way beyond anything I anticipated, or would recommend

This problem (large migrations due to highly configurable StreamFields) is something that we've run into as well, and is a major pain point around maintenance of our large Wagtail site.
I'm curious if you have any guidance on how or where to draw the line between having many Page models that differ slightly versus having fewer Pages but making them more configurable. Consider a use case where you have a few core page types that share certain common design elements (headers, footers, sidebars), but their main content may differ in numerous subtle ways. Now compare these few pages:

https://www.consumerfinance.gov/data-research/consumer-credit-trends/auto-loans/
https://www.consumerfinance.gov/data-research/cfpb-research-conference/2016-cfpb-research-conference/speakers/
https://www.consumerfinance.gov/consumer-tools/sending-money/ht/

Each of these pages has the same basic structure but the main content area is very different (different images, callouts, links, expandables). In our case we accomplish this through the use of at least one highly configurable StreamField, which can contain various blocks (which may be StructBlocks and hold, e.g. lists of other blocks).
This usage results in similar migration issues to that reported by @coredumperror. We've discussed various other ways to set this up, but it's not clear how best to do this with a "many page types" approach. You'd need something like PageWithImageAndFormAndLinks and then PageWithImageAndLinksButNoForm - the combinations would quickly get out of hand. Then you'd also have a more difficult editor experience where a page creator would have to choose from a large list of page types that differ in subtle ways. The inability to convert a page from one type to another also makes using page types less attractive than configurable StreamFields.
Any insight/suggestion in how best to set up pages like this in "the Wagtail way"?

Ping @loicteixeira as well – we've dealt with projects with tens of megabytes of StreamField migrations, I'm sure he will have good insights to share.

One additional point on the topic of StreamFields and migrations:
The use of Django migrations to encode StreamField configuration can also be a bit tricky as it doesn't enforce necessary data migrations when fields change. So, for example, changing a StreamField's nested CharBlock to an IntegerBlock makes a new migration but doesn't change the JSON field content stored in the database. This has come up before (#2110, #3014) but there's no simple or well-documented way to migrate this content (we've written up some notes here).
You could imagine a setup where StreamField changes don't create a migration, in which case it's totally on the code author to handle DB content changes themselves; or a setup where StreamField changes create a migration and Wagtail includes the framework to do data migrations. The current implementation exists halfway between those two approaches - I'm curious how others who have experienced this feel about this point.

@chosak I don't have a huge amount of experience doing the data modelling on real-world Wagtail sites, but the example pages you give certainly look like candidates for three distinct page types to me. The important thing is to organise them by their purpose rather than by layout/design - so, they would be DashboardPage or SpeakerListingPage, rather than TwoColumnPageWithLinks.
I notice in particular that https://www.consumerfinance.gov/data-research/consumer-credit-trends/auto-loans/ follows exactly the same layout as its sibling pages such as https://www.consumerfinance.gov/data-research/consumer-credit-trends/credit-cards/, which makes it a particularly good candidate for a dedicated template. If your editors are recreating that layout each time from a generic StreamField page consisting of 'two column blocks' and so on, that's wasted effort.

We ran into the same issue(s) on a couple websites too. Past a certain point, it is simply not possible to create separate page types for each combination, especially when converting to Wagtail an existing website with very bespoke pages (even after cutting in half the requirements by re-conciliating patterns together).
While I can agree with the general idea of keeping the right hat (i.e. separating content and design), I think the page type isn't the only valid point of separation between design and content. Given that a block has specific fields and renders consistently via a template, I think the separation is present too (as opposed to putting everything in a rich text field). So by giving multiple blocks, we're mostly allowing the content editor to re-organise the blocks and omit some others. This type of pattern reminds me of Atomic Design where the blocks would be molecules, nested blocks atoms used in a page/template (skipping organisms because that's pushing probably going too far).
However to be fair, the more flexible Streamfield will be, the lazier the developer will be to organise the content into separate logic units and, can arguably lead to inconsistent page structures (but consistent design).
Back on the migration issue, I don't know what to think of it really. I like the idea of following Django's convention and being able to access a frozen version of the model, but given that it's still rather difficult and fragile to modify the Streamfield data in migrations and that the data isn't converted under the hook when migrating (not sure how feasible it would be anyway), it feels a bit useless.
That being said, when encountering this issue, one of the solution we looked at was to overwrite the deconstruct method of a custom SteamBlock which would be used as a base of all the StreamBlock for all the StreamField, we decided against it because as annoying as the current situation can be, this would have removed something quite fundamental from how Django migrations work and could be more painful down the line. Instead we squash migrations more often than usual so we have only a few big migrations and created a custom runserver_fast (used in development only) which disable migration checks (because with many big migrations files, the server would take up to 30 seconds to restart on a file change).

@loicteixeira thanks for your comments. Much of what you said rings true with our experience. We have adopted an atomic design philosophy and so try to encourage content editors to pick and choose the blocks that make the most sense for a particular page.
Regarding migrations, I hear you about squashing. I'd like to better understand what functionality is gained by being able to access a frozen version of StreamFields, though, besides just breaking Django convention. What bad things would happen if the block details of the SF weren't stored in the migration?
@gasman I agree in part about the wasted effort. One issue we've faced is that on a large site with so many pages and types of content, the final design of a page might go through many iterations before its final publication. So instead of being able to standardize the design of, say, a SpeakerListingPage, creating the model, and publishing it to content editors, we instead seek to work iteratively, allowing content editors to use the Wagtail admin to experiment with page designs before finalizing them.
A common use case is one where editors use an existing page as a template but alter it slightly. So we might have a SpeakerListingPage and then decide we want to add expanded bios for the speakers on a different page. Using multiple page models for this would require considerably more engineering time versus giving the content editors the ability to experiment.

In the current state, while it can be complicated to create data migration for StreamField content, it is possible and the fact that the migration knows about the blocks definition means that when you save the page, it will validate the content (i.e. unknown blocks will be stripped and some block sanitisation might happen during the deserialisation/serialiation round).
Arguably Wagtail does a bit of that outside of migrations too (e.g. you removed a block from the definition but it is still present in the data, when the field loads, it will just ignore the now unknown block and it will then be removed upon save) but we probably shouldn't rely on this behaviour.
In any case, while I'm also bothered by this issue, I'm afraid that we might find out later that it was a mistake to remove that information (in other terms, that we had a bit of a short term vision). I don't know if that's a reason enough to not remove it though.
I'm also wondering if there would be a more compact way for blocks to deconstruct (i.e. keeping it but without generating such huge files) and if something can be done for this data to actually be used (I imagine auto conversion might not be possible, but maybe some helpers?).

One potential optimisation (which might well also link into #3062) would be to recognise when the same sub-block is re-used in multiple places in a streamfield definition, and assign that block an ID that we can point back to, instead of repeating the definition in full each time.
So, instead of:
body = StreamField([
    ('one_column', StreamBlock([big_long_list_of_sub_blocks])),
    ('two_column', StructBlock(
        ('left', StreamBlock([big_long_list_of_sub_blocks])),
        ('right', StreamBlock([big_long_list_of_sub_blocks])),
    )
])

we could have something like:
body = StreamField([
    ('one_column', StreamBlock([big_long_list_of_sub_blocks], id=1)),
    ('two_column', StructBlock(
        ('left', BlockReference(id=1)),
        ('right', BlockReference(id=1)),
    )
])

or perhaps
body = StreamField([
    ('one_column', BlockReference(id=1)),
    ('two_column', StructBlock(
        ('left', BlockReference(id=1)),
        ('right', BlockReference(id=1)),
    )
], block_refs={1: StreamBlock([big_long_list_of_sub_blocks])})

(Bear in mind that the graph of references might be arbitrarily complex: a block used as a reference might itself contain block references as sub-blocks. For extra bonus points, support circular references to achieve arbitrary-depth nesting. Yes, that's something people have actually requested...)

I like the IDs idea. ("IDea"?) That would definitely help a lot to cut down on the massive overload of text in migration files.

I wonder if this issue is related to a question I had on my mind (please tell me if this is too off topic): is StructBlock functionally duplicating what django.Model already handles? Both have a similar objective, which is to store a collection of fields.
What if - instead of inserting a StructBlock - I could insert a new django.Model instance into a StreamField? Perhaps this would add a few requirements on the particular django.Model (e.g. the existence of a few extra member functions). This instance would have an id, and it could be stored in its dedicated database table. If I change the django.Model's definition, it would not directly affect any StreamField.

@mnieber That's definitely worth opening a separate issue about - it's too big a topic to cover here.

This was discussed in the core team meeting on 25/01/20.
In general, it was agreed that including the streamfield block definitions in migrations was the correct default behaviour. This is because at any point in a model's migration history, you should be able to access both the structured content/data AND the full streamblock definition, in case they are both needed for use in a data migration. As unlikely as this may seem, until there are more established solutions for migrating streamfield content, we feel it's important to preserve this as an option.
However, we also recognise the issues that many (even core team members themselves) have reported in relation to this, and would like to offer a way for developers to opt out of this behaviour on a per-project basis, provided they are happy to accept the consequences (as outlined above).

I would greatly appreciate such an opt-out mechanism. My team does not care about keeping the history of our streamfields' structure, and this change would save us several megabytes of useless new migration code being shoved into our repo every week.

I had this issue back at 2020, and I just ignored it by having a backed-up copy of the main stream App(at minimum state), before I do migrations for the entire project or related Page models that use stream fields, I rename the live version of Stream App, and rename back the backed-up version and then after I done from migration, I rename the live version back to be the live one again

For those looking for an interim solution... we're currently using this modified version of StreamField internally, which still allows access to the raw values in migrations:
import json

from wagtail.fields import StreamField as WagtailStreamfield

class StreamField(WagtailStreamfield):
    def __init__(self, *args, **kwargs):
        """
        Overrides StreamField.__init__() to account for `block_types` no longer
        being received as an arg when migrating (because there is no longer a
        `block_types` value in the migration to provide).
        """
        if args:
            block_types = args[0] or []
            args = args[1:]
        else:
            block_types = kwargs.pop("block_types", [])
        super().__init__(block_types, *args, **kwargs)

    def deconstruct(self):
        """
        Overrides StreamField.deconstruct() to remove `block_types` and
        `verbose_name` values so that migrations remain smaller in size,
        and changes to those attributes do not require a new migration.
        """
        name, path, args, kwargs = super().deconstruct()
        if args:
            args = args[1:]
        else:
            kwargs.pop("block_types", None)
        kwargs.pop("verbose_name", None)
        return name, path, args, kwargs

    def to_python(self, value):
        """
        Overrides StreamField.to_python() to make the return value
        (a `StreamValue`) more useful when migrating. When migrating, block
        definitions are unavailable to the field's underlying StreamBlock,
        causing self.stream_block.to_python() to not recognise any of the
        blocks in the stored value.
        """
        stream_value = super().to_python(value)

        # There is no way to be absolutely sure this is a migration,
        # but the combination of factors below is a pretty decent indicator
        if not self.stream_block.child_blocks and value and not stream_value._raw_data:
            stream_data = None
            if isinstance(value, list):
                stream_data = value
            elif isinstance(value, str):
                try:
                    stream_data = json.loads(value)
                except ValueError:
                    stream_value.raw_text = value

            if stream_data:
                return type(stream_value)(self, stream_data, is_lazy=True)

        return stream_value

@ababic thanks for the example! Is there any downside to considering such an implementation to be default behavior in Wagtail? This is maybe a roundabout way of asking what the potential issues might be with adopting an approach like that. :-D

@easherma-truth the only downside we've found is that you can only access raw Streamfield values in data migrations (i.e. not the fancy 'bound' kind that know how to render themselves). I find that we generally only work with raw values in migrations anyway, so that hasn't been an issue for us. The fact that you always get the full raw value to work with is actually better in some cases, as you can migrate data between blocks without both block definitions having to be present at the same time (usually, block values that don't match up to a block definition are automatically scrubbed from the return value).

@gasman I've separated out the 'ability to access raw values in migrations' problem and submitted a couple of candidate PRs for it. The second option is preferred, as there doesn't need to be any migration-specific behaviour there, which is very messy to write automated tests for. Do you have any thoughts on either approach?

It's been a couple of years since this has been discussed, but we're hitting a wall in a large wagtail project and migrations now take 45+ minutes and generate huge files and we're also wondering how we can proceed. @coredumperror have you experienced any new downsides to your approach?

@ssyberg our approach of excluding all streamfield details from our migrations is still working fine.

@ssyberg This came up again recently in the Wagtail Slack, too. One user in that thread endorsed @ababic's solution, posted just before @coredumperror's.
Also referenced is @cnk's two-part blog series on trimming Django and Wagtail migration cruft:

https://cynthiakiser.com/blog/2022/01/06/trimming-django-migration-cruft.html
https://cynthiakiser.com/blog/2022/01/06/trimming-wagtail-migration-cruft.html

Two years later, and I still stand by the solution above.
It's part of our default project setup, has saved hours in collective CI time, and many more in developer hours spent on alternative solutions like regular squashing or manual removal of block definitions (or doing nothing, and having to deal with migration tree conflicts in multiple environments 😜).
Personally speaking, I have yet to encounter a situation where I needed to do something in a data migration that I couldn't do before. However, it should be noted that losing access to block definitions makes it impossible to use the Streamfield migration helpers that have since been added to Wagtail.


RKE2 is not shown when provisioning an Elemental cluster; only K3s is shown

Setup

Rancher version: v2.7.0-rc1
Browser type & version: Chrome

Describe the bug
When going to provision an Elemental cluster, once you toggle the RKE2/k3s button in Cluster Management > Create, you are directed to fill out details to provision the cluster. This is expected, but when you look at the K8s version dropdown, you only see K3s and not RKE2.
This is incorrect, there needs to be RKE2 along with K3s. RKE2 is already GA within the Rancher product, K3s is still in Tech Preview. As such, this needs to be properly addressed and more emphasis needs to be placed on RKE2.
To Reproduce

Setup Rancher and login to the UI.
Navigate to Cluster Management > RKE2/K3s > Elemental Cluster.
Note that in the K8s version dropdown, only K3s is shown and not RKE2.

Result
RKE2 is not shown in the K8s version dropdown.
Expected Result

RKE2 needs to be shown in the K8s version dropdown as it is already GA in Rancher.

Successfully tested with elemental-ui 0.1.1


Fix lisp docs

Coverage remained the same at 35.793% when pulling 3dfcf436f00c534ada4d3213e58e05aa6c1ac130 on bugfix/lisp-docs into e52a9bead10a24488524c0c2263f6cae5a009c22 on master.


BUG: f-form-builder disabled attribute should only disable input

I have a use case, where I want to disable the email field from being changed by the end user. It is set programtically. It has a tooltip stating that it cannot be changed. In Flow1's FormBuilder, setting disabled: true on a field would only disable the input field, and not the tooltips associated with the label.
Observed

Expected

Fixed, when tested with latest version
    "@cldcvr/flow-core": "1.20.4",
    "@cldcvr/flow-form-builder": "1.7.3",


contrib/terraform/terraform.py: fix for Ansible 2.6.2+, issue #3067

contrib/terraform/terraform.py: fix for Ansible 2.6.2+, issue #3067

cla signed

cla


Added TabView VisualStates

Needs to be added to Docs https://github.com/xamarin/XamarinCommunityToolkit/pull/803

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin Community Toolkit. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI Community Toolkit is the replacement for Xamarin Community Toolkit and its documentation can be found here.


Fix table of contents v2

fixed in https://github.com/inttter/md-badges/commit/819a9a8fc1c100c0232d1b2f2e9fed1d399bdbc1, fr this time.


Recommend changing the "Children" label to say "Children (Ages 5 - 11)"

or this.

Fixed and deployed


Fix file descriptor leak during off-heap allocation for realtime consuming segments

We were deleting the files, but not releasing the associated mapping.
Fixed and added a unit test.
Also added logs for each allocation , and improved the log during segment close

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@4058fda). Click here to learn what that means.
The diff coverage is 88%.

@@            Coverage Diff            @@
##             master    #1860   +/-   ##
=========================================
  Coverage          ?   49.35%
=========================================
  Files             ?      813
  Lines             ?    38901
  Branches          ?     5130
=========================================
  Hits              ?    19198
  Misses            ?    18063
  Partials          ?     1640

Impacted Files
Coverage Δ

.../pinot/core/io/writer/impl/OffHeapStringStore.java
0% <0%> (ø)

.../impl/dictionary/BaseOffHeapMutableDictionary.java
72.58% <100%> (ø)

.../FixedByteSingleColumnSingleValueReaderWriter.java
91.57% <100%> (ø)

.../pinot/core/realtime/impl/RealtimeSegmentImpl.java
64.2% <100%> (ø)

...l/FixedByteSingleColumnMultiValueReaderWriter.java
50% <100%> (ø)

...e/io/writer/impl/MutableOffHeapByteArrayStore.java
85.71% <100%> (ø)

...n/pinot/core/io/writer/impl/MmapMemoryManager.java
82.69% <88.88%> (ø)

Continue to review full report at Codecov.

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


removed tinkertool.rb

Current download url isn’t official; official download url has a key. We need to either find a way to download it bypassing that, or remove this.

Since I did not find Marcel Bresink, the author of TinkerTool, on GitHub, I wrote him an email asking if he would be willing to provide a Cask-friendly download link for TinkerTool.

Sounds good.

I just wrote up a new tinkertool.rb for version 6.0. All checks out in the requirements and then I found this. Everything seems to work perfectly, anything I may be missing on this Application's past? If wanted, I'll push it over.

@Jahhein As stated on the top:

Current download url isn’t official; official download url has a key.

Haven’t checked now and don’t remember the details then, but out simply it seems the old official URL was unsuitable for download (had an expire key?) and the URL in this cask was not officially supported (and we don’t allow those).


Data Custodian oauth/authorize does NOT indicate a request with multiple "redirect_uri" key/value elements is invalid

If the GET /DataCustodian/oauth/authorize? request contains multiple ?redirect_uri= key/value pairs, the first redirect_uri key/value provided in the query parameter is used.  "The OAuth 2.0 Authorization Framework" [RFC6749] in section <IP_ADDRESS> Error Response states:
<IP_ADDRESS>.  Error Response
If the request fails due to a missing, invalid, or mismatching
redirection URI, or if the client identifier is missing or invalid,
the authorization server SHOULD inform the resource owner of the
error and MUST NOT automatically redirect the user-agent to the
invalid redirection URI.
If the resource owner denies the access request or if the request
fails for reasons other than a missing or invalid redirection URI,
the authorization server informs the client by adding the following
parameters to the query component of the redirection URI using the
"application/x-www-form-urlencoded" format, per Appendix B:
error
REQUIRED.  A single ASCII [USASCII] error code from the
following:
     invalid_request
           The request is missing a required parameter, includes an
           invalid parameter value, includes a parameter more than
           once, or is otherwise malformed.

Based on the above documentation, the Data Custodian should be issuing an invalid_request error due to the fact the "redirect_uri" key/value pair appears more than once.

Closed.


Question: how to update the TabContent active tab programmatically?

I see the TabContent is reactive and using a context but the active boolean seems to have been missed.  Should the active boolean be reactive?

TabPane

  onMount(() => {
    if (active) setActiveTab(tabId);
  });

  let tabOpen = active; //???
  $: if ($activeTabId !== undefined) tabOpen = $activeTabId === tabId;
  $: classes = classnames('tab-pane', className, {
    active: tabOpen,
    show: tabOpen
  });
...

How to update the active tab without clicking?  Changing the active property is not working.  Shouldn't the TabPane update the activeTabId in the context on any active that changes to true?

Here is a work-around that re-render the TabContent only when the exported changeTab is called:
<script>
  export let tab = 'one'

  let activeTab = tab
  let updateTab = 1

  export function changeTab(tabId) {
    if(activeTab !== tabId) {
      activeTab = tabId

      // https://github.com/bestguy/sveltestrap/issues/485
      updateTab++
    }
  }

  function tabChanged(tabId) {
    activeTab = tabId.detail
  }
</script>

{#key updateTab}
  <TabContent on:tab={tabChanged}>
    <TabPane tabId="join" tab="Join" active={activeTab === 'one'}>
      // ...
    </TabPane>
    // ...
  </TabContent>
{/key}

Agree the active attribute should be reactive but it's currently not.
The {#key} approach crashed my app, so in order to programatically change the acive tab I had to resort to finding the <a> element inside the tab I want to move to and .click() on it. It works as expected.

I ran into this issue as well. It's related to #319


tox.ini: Legacy pylint raises StopIteration in Python 3.7

As discussed at https://github.com/edx/edx-lint/pull/93#issuecomment-467115234

Thanks for the pull request, @cclauss! I've created OSPR-3134 to keep track of it in JIRA. JIRA is a place for product owners to prioritize feature reviews by the engineering development teams.
Feel free to add as much of the following information to the ticket:

supporting documentation
edx-code email threads
timeline information ("this must be merged by XX date", and why that is)
partner information ("this is a course on edx.org")
any other information that can help Product understand the context for the PR

All technical communication about the code itself will still be done via the GitHub pull request interface. As a reminder, our process documentation is here.

@cclauss 🎉 Your pull request was merged!
Please take a moment to answer a two question survey so we can improve your experience in the future.

@cclauss Thanks for your contribution.


feat: Implement async cache client methods

Progress:

[ ] createCache
[ ] listCaches
[ ] deleteCache
[x] set
[x] get
[x] setIfNotExists
[x] delete
[x] keysExist
[x] keyExists
[x] increment
[ ] listFetch
[ ] listPushFront
[ ] listPushBack
[ ] listPopFront
[ ] listPopBack
[ ] listRemoveValue
[ ] listLength
[ ] dictionarySetField
[ ] dictionaryGetField
[ ] dictionaryFetch
[ ] dictionarySetFields
[ ] dictionaryGetFields
[ ] dictionaryIncrement
[ ] dictionaryRemoveField
[ ] dictionaryRemoveFields
[x] setAddElement
[x] setAddElements
[x] setFetch
[x] setLength
[x] setRemoveElement

@cprice404 @pgautier404 This strategy looks good to me!
The only question I have is whether we want the async methods in the CacheClient or a separate AsyncCacheClient.

FYI, I used the same naming scheme as AWS in their SDKs, where each client has both async and non-async methods, and the async ones have the same name, but with an Async suffix.

https://github.com/aws/aws-sdk-php/blob/3.271.8/src/Sns/SnsClient.php


Make "Name" field optional

Per Hub request: "If a storyteller doesn’t have their name listed, leave the name portion blank (i.e. if the Name field in the master sheet just says “families of victims”"

I'm using the name + date as a unique id. I'm going to add a "display name: true/false" to the form. That way if it is something like 'families of victims" i'll still use that to make a unique id, but it wont show up on the card

Cool. Not critical for tomorrow but they have some stories with multiple names we should figure out how best to display.


Request Header IllegalStateException

Currently, my logging has been working correctly. However, when I add the request header to enable logging of all request headers, I receive a illegal state exception error. I've searched online and can't seem to find much information. I've read through the documentation multiple times but cannot find a solution.
Specifically, this part of code is what results in the error:
<encoder class="net.logstash.logback.encoder.LogstashAccessEncoder">
  <fieldNames>
    <requestHeaders>request_headers</requestHeaders>
  </fieldNames>
</encoder>

Here is my config file:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />

    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
    	    <customFields>{"app_name":"${APP_NAME:-N/A}","app_version":"${APP_VERSION:-N/A}","hostname":"${HOST:-N/A}","environment":"${environment:-${ENVIRONMENT:-N/A}}"}</customFields>
            <includeContext>false</includeContext>
            <timeZone>UTC</timeZone>
	   </encoder>

      <encoder class="net.logstash.logback.encoder.LogstashAccessEncoder">
        <fieldNames>
            <requestHeaders>request_headers</requestHeaders>
        </fieldNames>
      </encoder>

        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_ROTATION:-${LOG_FILE}%d{yyyy-MM-dd}.%i}</fileNamePattern>
            <maxHistory>${LOG_FILE_ROTATION_MAX_HISTORY:-1}</maxHistory>
            <totalSizeCap>${LOG_FILE_ROTATION_TOTAL_SIZE_CAP:-3GB}</totalSizeCap>
            <maxFileSize>${LOG_FILE_ROTATION_MAX_FILE_SIZE:-1GB}</maxFileSize>
        </rollingPolicy>
    </appender>

    <root level="${LOG_LEVEL:-INFO}">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>

</configuration>

Error:
java.lang.IllegalStateException: Logback configuration error detected:  ERROR in ch.qos.logback.core.joran.spi.Interpreter@19:29 - no applicable action for [requestHeaders], current ElementPath  is [[configuration][appender][encoder][fieldNames][requestHeaders]] 	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:166) 	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithSpecificConfig(AbstractLoggingSystem.java:67) 	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:57) 	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:114)

What version of logstash-logback-encoder are you using?

Also, it looks like you're trying to configure two encoders for one appender.  This won't work.
LogstashAccessEncoder only works for access events from logback-access and would go in logback-access.xml

@philsttr
My apologies on the late reply. I was using the wrong version of logback. I have also looked into logback-access and realized that it is different and needs its own xml. Thank you very much for your help.


Incorrect C# sample in quick-start page

The C# sample on https://www.textmagic.com/docs/api/c-sharp/
not compileable: need to replace apostrophes with double quotes and add semicolon after last "Console.WriteLine" operation.
And it would be nice to provide working username/token credentials for testing from scratch

Replaced with a correct one.


oci.Storage.Delete() should return ErrNotFound if target is not present in the storage

In the current implementation, a *PathError will be return if target is not present in the storage, which is not user-friendly.
https://github.com/oras-project/oras-go/blob/0f1dc30a0fd713f3bafcf3bd52693b2e8a8a6fa5/content/oci/storage.go#L109-L117

I'd like to work on this.


Increased MAXIMUM total Recovery per second from Energy Shield Leech is doing absolutely nothing

The notable "Light Eater" & "Ethereal Feast" as well as the Keystone "Ghost Reaver" should increase the total maximum recovery from es leech, but they don't do anything at all.

It depends on how you leech and your setup, but they do show, and the numbers seem to be correct from a quick glance.
Leech can only happen from hit spells, so you need to use a spell that actually hits (i.E. Fireball), damage over time cannot leech, and a few others won't leech either by design. Also you need to have at least 1 ES in your build for it to show.

No they do NOT work. Maybe actually test the nodes I mentioned yourself before posting your useless comment.
This is with or without the Ethereal Feast

and this is without Ethereal Feast and without the 30% increased total Recovery per second from Energy Shield Leech from the node before it.

As you can see, the MAXIMUM ES leech does absolutely nothing, while the regular total recovery from es leech does work as intended.
Note: The displayed es leech per hit was the actual maximum es leech in this test case since I set the gem level of Discharge to 40.


Connection Error when trying to renew

Has been working well for a couple of months now, but today was the first time to renew my certificates.  Checking the logs and I see this:
2016-04-19 01:31:31,463:INFO:simp_le:1372: Certificates already exist and renewal is not necessary, exiting with status code 1.
Sleep for 3600s
Creating/renewal nine-hells.net certificates... (nine-hells.net couch.nine-hells.net deluge.nine-hells.net ebooks.nine-hells.net plex.nine-hells.net plexconnect.nine-hells.net sabnzbd.nine-hells.net sickrage.nine-hells.net www.nine-hells.net zm.nine-hells.net)
2016-04-19 02:31:31,871:INFO:requests.packages.urllib3.connectionpool:756: Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
2016-04-19 02:31:32,937:INFO:requests.packages.urllib3.connectionpool:756: Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
2016-04-19 02:31:34,010:INFO:requests.packages.urllib3.connectionpool:756: Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
Traceback (most recent call last):
File "build/bdist.linux-x86_64/egg/simp_le.py", line 1390, in main
return main_with_exceptions(cli_args)
File "build/bdist.linux-x86_64/egg/simp_le.py", line 1375, in main_with_exceptions
new_data(args, existing_data)
File "build/bdist.linux-x86_64/egg/simp_le.py", line 1271, in new_data
client = registered_client(args, existing.account_key)
File "build/bdist.linux-x86_64/egg/simp_le.py", line 1221, in registered_client
regr = client.register(new_reg)
File "build/bdist.linux-x86_64/egg/acme/client.py", line 97, in register
response = self.net.post(self.directory[new_reg], new_reg)
File "build/bdist.linux-x86_64/egg/acme/client.py", line 632, in post
response = self._send_request('POST', url, data=data, **kwargs)
File "build/bdist.linux-x86_64/egg/acme/client.py", line 591, in _send_request
response = requests.request(method, url, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 423, in send
raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='acme-v01.api.letsencrypt.org', port=443): Max retries exceeded with url: /acme/new-reg (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0f065c0110>: Failed to establish a new connection: [Errno -3] Try again',))
Unhandled error has happened, traceback is above
Debugging tips: -v improves output verbosity. Help is available under --help.
Sleep for 3600s
As you can see, the initial attempt was before the renewal was required.  Next attempt an hour later and a problem arises.  It has done the same thing each hour since then.  Apart from deleting the certs and restarting (to re-create) - any ideas on what is going wrong?
M.

It seems it can't connect to the acme server of letsencrypt.org.
Check that the dns and connections to internet are good.
Also double check the ACME_CA_URI variable if you have change it.


FW-497. For CoAP, use a NON type response for a NON type request.

Use an ACK response only for a CON request.

@kbonset ,thanks for fixing this!


New file doesn't open from file explorer if there is already an VSCode instance running as Admin.

VSCode Version: Code 1.6.0 (e52fb0bc87e6f5c8f144e172639891d8d8c9aa55, 2016-10-10T18:37:40.189Z)
OS Version: Windows_NT ia32 10.0.14393
Extensions: ms-vscode.csharp-1.4.0

Steps to Reproduce:

Open VSCode as admin.
Now, try opening another file from file explorer.
It won't open.

https://github.com/Microsoft/vscode/issues/4921


NodeRed does not start

Either running locally or deploying to IBM Cloud the application fails to start without any errors. It just ends after displaying
"9 Nov 13:20:38 - Loading application settings"
sjm@Stuart ai-services % npm run start

<EMAIL_ADDRESS>start
node --max-old-space-size=160 index.js --settings ./bluemix-settings.js -v

9 Nov 13:20:38 - Starting Node-RED on IBM Cloud bootstrap
9 Nov 13:20:38 - Loading bluemix-settings.js
[2022-11-09T13:20:38.098] [INFO] ibm-cloud-env - Initializing with /Users/sjm/Demos/ai-services/server/config/mappings.json
Using Cloudant service: cloudant db:nodered prefix:nodered
9 Nov 13:20:38 - Loading application settings
sjm@Stuart ai-services %

Problem was that I was attempting to use a Cloudant service that only supported IAM authentication. I created a Cloudant database that supported both the IAM and Legacy user/pass authentication mechanisms and the app started correctly. Recommend that the documentation be updated.


fix(approvals-satisfied): pass pr number correctly

:pencil: Description

🤦

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


client-go 0.23.5 run blocked

Using go 1.18.1 or go 1.17.9 and client-go 0.23.5
go run <script using client-go>

# k8s.io/client-go/applyconfigurations/meta/v1
/go/pkg/mod/k8s.io/client-go@v0.23.5/applyconfigurations/meta/v1/unstructured.go:64:38: cannot use doc (variable of type *"github.com/googleapis/gnostic/openapiv2".Document) as type *"github.com/google/gnostic/openapiv2".Document in argument to proto.NewOpenAPIData

It helped reverting client-go to v0.22.8 for me. Just a work around though.

make sure you have matching client-go and kubectl module versions

(and are using the version of k8s.io/kube-openapi/pkg/util/proto indicated by your version of client-go)

I suspect you are trying to use HEAD of k8s.io/kube-openapi with v0.23.5 of client-go

client-go 0.23.5 uses this version of kube-openapi:
k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65

https://github.com/kubernetes/kube-openapi/commits/master/pkg/util/proto shows the history of that file, which changed the signature of that method from googleapis/gnostic → google/gnostic on 3/10/2022
the error you're getting indicates you were using a version of kube-openapi >= 3/10/2022 in your build

The problem came up again this week from this pr in kube-openapi.
I solved it today by updating client-go to include this commit.

Warning this is not a long term fix and should only be used if necessary and until v0.28.0 is stable.

// go.mod
replace k8s.io/client-go => k8s.io/client-go v0.28.0-alpha.2

also met this error with client-go v0.27.0~v0.27.2

# k8s.io/client-go/openapi
../../../../../../pkg/mod/k8s.io/client-go@v0.25.6/openapi/groupversion.go:35:18: undefined: handler3.OpenAPIV3DiscoveryGroupVersion
../../../../../../pkg/mod/k8s.io/client-go@v0.25.6/openapi/groupversion.go:38:52: undefined: handler3.OpenAPIV3DiscoveryGroupVersion
../../../../../../pkg/mod/k8s.io/client-go@v0.25.6/openapi/client.go:52:24: undefined: handler3.OpenAPIV3Discovery

https://pkg.go.dev/k8s.io/kube-openapi/pkg/handler3?tab=versions
replace k8s.io/kube-openapi => k8s.io/kube-openapi v0.0.0-20220803164354-a70c9af30aea


Using FontAwesome within markdown in posts

I read through the following issue regarding using FontAwesome, however it leads me to add the code  within my markdown text at every place I need it. I wanted to use the info circle whenever I do a blockquote.  So its not good coding to paste that text within my markdown at every location I do a blockquote. I would instead like to set it up by changing the css somehow.  So I looked into adding the following in the main.scss file:
blockquote::before {
  font-family: FontAwesome;
  content: '\f05a';
}

However, this results in the page showing a black square icon. Seems weird to me. The icon shows correctly when I use the  within the markdown text however.
Any ideas?

I'd suggest StackOverflow or searching through FontAwesome's issues to see if others have been able to do this. Their older versions you could just as you have above, but maybe that's changed with the new JavaScript version.

Also the way FontAwesome works now isn't by using a webfont. It's inject the icons as inline SVGs via their JavaScript method.
Check their documentation, as it's possible but you need to do things slightly different from what you have above.
https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements

Ok thanks. Where in your theme do you actually load/reference the Font Awesome font? I could not find that.

So you are using the Font Awesome Free? I have literally tried solving this problem but still getting that block square icon no matter what I try. Here is what I have written now in my main.scss.
@font-face {
    font-family: 'FontAwesome';
    src: url('../fonts/fa-solid-900.eot');
  }
blockquote::before {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    font-family: "FontAwesome";
    font-weight: 900; content: "\f007";
  }

And then I downloaded the files from https://github.com/FortAwesome/Font-Awesome/tree/master/web-fonts-with-css/webfonts and moved them to assets/fonts/ folder.  However, this still produces the square icon.
So at this point I am out of any other options. Anyone else can offer advice here it would be much appreciated.

Additionally, I tried the following in the main.scss but it didn't work.
@import url("https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/web-fonts-with-css/css/fontawesome-all.min.css"); /* FA CSS import */

/* ... */

blockquote:before {
    /* >> Symbol you want to use: */
    content: "\f16c";
    /* >> Name of the FA free font (mandatory)
               - 'Font Awesome 5 Free' for Regular and Solid symbols;
               - 'Font Awesome 5 Brand' for Brands symbols. */
    font-family: 'Font Awesome 5 Free';
    /* >> Weight of the font (mandatory)
               - 400 for Regular and Brands symbols;
               - 900 for Solid symbols. */
    font-weight: 900;

    /* >> Optional styling: */
    display: inline-block;
    /* ... */
}

You're in StatckOverflow territory now since this is general web dev stuff. I'd suggest expanding your search there.


actual jooat implementation instead of hooking rage::atStringHash

why hook rage::atStringHash(const char*,uint) when we can have actual jooat implementation
the code is from here: https://gtaforums.com/topic/879408-c-string-hasher/ from Fireboyd78

I'm nore sure I see the benefit? I guess we save us a string copy and pin. But it was kinda nice to just have the game do the heavy lifting and not worry about the implementation details.

@crosire I'm not sure if you are saying we should not worry about the implementation details of the hashing function, but I can say this PR will improve performance (about 2x faster than before). Besides, I don't think they don't change how to calculate joaat hashes because even the equivalent function in GTA IV calculates in the same way (the function is at 0x5B1C30 in v<IP_ADDRESS>).
public static string RandomString(int length)
{
    const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_@";
    return new string(Enumerable.Repeat(chars, length)
                                .Select(s => s[randomInstForRandomStr.Next(s.Length)]).ToArray());
}

public static void MeasurePerformance()
{
    var randomStrs = new List<string>(10000000);
    for (int i = 0; i < 1000000; i++)
    {
        randomStrs.Add(RandomString(12));
    }

    var stopwatch = new Stopwatch();
    stopwatch.Start();
    foreach (var randomStr in randomStrs)
    {
        Game.GenerateHashOld(randomStr); // call rage::atStringHash via a delegate obtained via Marshal.GetDelegateForFunctionPointer (before this PR)
    }
    stopwatch.Stop();
    var oldElapsedTime = stopwatch.ElapsedMilliseconds;

    stopwatch.Reset();
    stopwatch.Start();
    foreach (var randomStr in randomStrs)
    {
        Game.GenerateHash(randomStr); // calculate the hash value by directly executing C# code (this PR)
    }
    stopwatch.Stop();
    var newElapsedTime = stopwatch.ElapsedMilliseconds;
}

In this code, oldElapsedTime will be twice as many as newElapsedTime. I guess calling a delegate consumes much more time when the delegate is obtained via Marshal.GetDelegateForFunctionPointer() than we would think.

Fair. From an implementation point of view I'd just keep `NativeMemory.GetHashKey(string key) though and simply replace its definition, since the fancy concatenation overloads aren't used anyway:
static readonly byte[] LookupTable = { ... };

public static uint GetHashKey(string key)
{
	var bytes = Encoding.UTF8.GetBytes(key);
	uint hash = 0;
	for (int i = 0; i < str.Length; i++)
	{
		hash += LookupTable[bytes[i]];
		hash += (hash << 10);
		hash ^= (hash >> 6);
	}
	hash += (hash << 3);
	hash ^= (hash >> 11);
	hash += (hash << 15);
	return hash;
}

I guess calling a delegate consumes much more time when the delegate is obtained via Marshal.GetDelegateForFunctionPointer() than we would think.

A bit irrelevant here, but i just figured that we can use the function pointer syntax, just need to specify the calling convention (presumably Stdcall), maybe with the SuppressGCTransition attribute. Haven't tested yet, but it should work and be much faster.

Sorry, but conflicts occur since I merged #1136.

Would also prefer to ditch the new joaat.cs file and move the function definition back into the behemoth that is the NativeMemory class.


Auto complete still can't work?

I can't see it work in the demo site.

https://github.com/Andr3as/Codiad-CompletePlus


Question about AFT integration

Thank you for the material and networking pattern implemented in this repo.
As the root README.md file mentions:

Perfect for a central networking hub account, potentially alongside Account Factory for Terraform

I thought to ask for your thoughts on the below. It's probably a long shot but I'd appreciate the feedback, even if it where along the lines of "don't ask here, go ask there instead".

Would you reckon it makes sense to implement the networking pattern directly as part of AFT account customizations?
If so, any thoughts on how to access route tables from a spoke account within the AWS Organization using native AFT facilities?
Are you aware of anyone working on 1. already?

Thank you.

Hi @luigidifraiawork
I refactored the solution to work with a CT based LZ using AFT for account vending.
I created separate pipelines for each module with in the network hub account for development.
In the account customization is where i handled the VPC creation and any other links to the central networking.

Hi @aandsco.
Thank you for taking the time to answer my question. At the time I tried, deploying the Network Hub as part of the AFT account customization pipeline was fine, but the account customization pipeline for a Spoke was erroring out as it could not assume the ${var.environment}_network_automation_role role:
│ Error: operation error STS: AssumeRole, https response error StatusCode: 403, RequestID: c0895435-f03f-44fe-a5b8-0ec60c2e8e0d, api error AccessDenied: User: arn:aws:sts::<AFT account number>:assumed-role/AWSAFTAdmin/AWSAFT-Session is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::<Network Hub account number>:role/prod_network_automation_role

That was referring to the additional TF provider I had added to the Spoke account customization folder:
provider "aws" {
  alias  = "network_hub"
  region = data.aws_region.current.name

  assume_role {
    role_arn    = "arn:aws:iam::<Network Hub account number>:role/network-automation-role"
  }
}

For both Hub and Spoke I used the same value for var.environment, i.e. prod.
Did you have this sort of issues when testing within the AFT account customization pipeline for Spokes?
Thanks again for taking the time!
Cheers,
Luigi

A few changes are that var.environment isn’t set. I handled this by using custom fields to write a ssm param and a data source to read it instead.
the assume role issue is that your now using the AFT execution role so amending this should help.
It took me a few days to fully decouple the hub services and get accounts vended with aft with fully transitive network and dns.

Do you remember what changes you did to which role in each spoke account?
As far as I can tell, the AWSAFTExecution role in each spoke account has the AdministratorAccess (arn:aws:iam::aws:policy/AdministratorAccess) policy attached and there's no permission boundary set. The trust relationship trusts the entity as per below:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:sts::<AFT account number>:assumed-role/AWSAFTAdmin/AWSAFT-Session"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

The above trusted entity doesn't seem to be allowed to assume the ${var.environment}_network_automation_role role (arn:aws:iam::<Network Hub account number>:role/prod_network_automation_role) in a vanilla AFT deployment? That's what the error message suggests. It doesn't even appear that the AWSAFTExecution role is involved directly, based on the error.
I even tried to relax the trust relationship for the ${var.environment}_network_automation_role role to be:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "sts:AssumeRole",
        }
    ]
}

But that didn't seem to help either. I could try again, I just want to make sure I am not missing any pre-requisite here.

Var.environment doesn’t exist so you’ll need to source that a different way, I detailed how I did it above.

The aft role has * but the automation role allows any role in the org with the tag automatiom = true

It would be inefficient to add this, so use the aft-execution role in the network hub account

It would be inefficient to add this, so use the aft-execution role in the network hub account

Thank you for your help!


Scrollbar Colour Enhancement Feature 🙏

Heyo! We're hoping to have selected pages on our scrollbar highlight like this (with the blue trim on the left):

This is an example taken from: the react website

Hi, can I fix it? Do you want to use any specific color?

Hey @devluki , if you could that'd be great :D We're thinking #3796F4


The type initializer for 'Bio.Alphabets' threw an exception

Hi,
I am getting following error even in basic code using dotnetbio on windows and visual stduio 2015 community edition.
Code: // Create two sequences; normally you'd have this already.
ISequence dna1 = new Sequence(Alphabets.AmbiguousDNA, "ACTGAAGGATATTA");
Error message
The type initializer for 'Bio.Alphabets' threw an exception.
Thx for your help,
Ambi.

Hi Ambi,
Do you have a longer stack trace for this message? It's hard to tell what's going on from just this, though it may be related to some missing PCL libraries.
Cheers,
Nigel

Am closing this issue.  I also just committed a change that moves away from the PCLs in preparation of the upcoming .NET Core transition.


Could you release the code of PDB data preprocessing ?

Sorry to interrupt you.  I have encountered many problems when I processed the PDB data into the  contactMap. For example, there are more than 20 kinds of  aminos in PDB,  and two CA atoms in a residue. I have tried many packages to parse the PDB, including Biopython and RDKIT, but still can not solve the problems and do not kown the right process way. I would be most grateful if you could release the code of PDB data preprocessing.
Thanks!

Sorry to interrupt you. I met the same problem with @pyli0628 .  Is there any chance that you wolud release the code of PDB data preprocessing.I will be very grateful. Thanks!

Hi,  thank you for your interest. The data preprocessing script of PDB was written in C++ language by the corresponding author (Y. Yang). I think it is hard to run without guidance. The Biopython is good enough to output the distance map. For those special cases (actually not many), you could omit or fill it with the mean values. Anyway, the difference of a few amino acid residues will not have much effect on the results, as the real world is more complicated.

@prokia sorry to bother you. I do not understand from you paper how do you go from sequence (Binding DB provides only sequences) to PDB structures. Do you just do a FASTA search on rcsb? What if there are more than one structure for a particular sequence.

@prokia sorry to interrupt you. I have used Biopython to output the distance map and have no negative values,  but I found that there are negative values(only -1) in your map, could you tell me why? thank you very much!


EF Core 1.1 Preview 1 Tooling doesn't work with .NET Core 1.1 Preview 1

Steps to reproduce
I'm using .NET Core 1.1 Preview1.
$ /opt/dotnet/dotnet

Microsoft .NET Core Shared Framework Host

  Version  : 1.1.0-preview1-001100-00
  Build    : 5e029a1d10ccf5cbdd2d8254c331e1ee24850436

Usage: dotnet [common-options] [[options] path-to-application]

Common Options:
  --help                           Display .NET Core Shared Framework Host help.
  --version                        Display .NET Core Shared Framework Host version.

Options:
  --fx-version <version>           Version of the installed Shared Framework to use to run the application.
  --additionalprobingpath <path>   Path containing probing policy and assemblies to probe for.

Path to Application:
  The path to a .NET Core managed application, dll or exe file to execute.

If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1' in your environment.

To get started on developing applications for .NET Core, install the SDK from:
  http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

Then I'd like to use EF Core 1.1. Here is a simple project.json.
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0-*",
    "Microsoft.EntityFrameworkCore.Sqlite.Design": "1.1.0-*"
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
  },
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0-preview1-001100-00"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

EF tooling fails to start.
$ /opt/dotnet/dotnet restore
<snip>
log  : Restore completed in 1955ms.
$ /opt/dotnet/dotnet ef
The specified framework 'Microsoft.NETCore.App', version '1.0.0' was not found.
  - Check application dependencies and target a framework version installed at:
      /opt/dotnet/shared/Microsoft.NETCore.App
  - The following versions are installed:
      1.1.0-preview1-001100-00
  - Alternatively, install the framework version '1.0.0'.

When I downgraded netcoreapp to 1.0 and using .NET Core 1.0 runtime, it works.
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.*"
        }
      },
      "imports": "dnxcore50"
    }
  }

The issue
dotnet ef is not working with EF Core 1.1 Preview 1 and .NET Core 1.1 preview. Is it expected limitation?
Further technical details
EF Core version: 1.1.0-preview1-final
Operating system:  Red Hat Enterprise Linux Server release 7.2 (Maipo)

I just got it working.  Try changing your project.json to:
{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0-*",
    "Microsoft.EntityFrameworkCore.Sqlite.Design": "1.1.0-*",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final"
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"
  },
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0-preview1-*"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

Nevermind, once I clean my old packages it stops working.  dotnet ef fails and says:
The specified framework 'Microsoft.NETCore.App', version '1.0.0' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/share/dotnet/shared/Microsoft.NETCore.App
  - The following versions are installed:
      1.1.0-preview1-001100-00
      1.0.0-rc2-3002702
  - Alternatively, install the framework version '1.0.0'.

Currently you need to have .NET Core 1.0.0 installed on the machine. It doesn't have to be referenced by the project, but the ef tools need it present.
cc @bricelam to see if we have a plan to avoid this requirement?

Closing as this is how .NET CLI works at the moment. We may be able to remove this restriction in the future, but we aren't going to try and work around it.

If you rename it to:
"tools": {   "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final" },
it will work.
Found at http://stackoverflow.com/a/40304210

Update:
I installed the version 1.0.0-preview2-003131 in addition to Version 1.0.0-preview2.1-003155 inside my Docker Container. After that the dotnet ef commands worked.

I really don't understand why Microsoft is not releasing a 1.1 build for EF tools. DotNet Watch already did it when 1.1 was announced. The docker images were built to be used by a single dotnet version.

@goenning That's the plan for preview4


TextInput properties for minLines and maxLines

We are adding a long text field to hold either 150 or 350 words for an input form to allow editing of their activity description.

already completed - maxLines is supported. https://studio.ensembleui.com/app/e24402cb-75e2-404c-866c-29e6c3dd7992/screen/abc081b1-bcb4-4db6-ae55-7987cb6c418e
No use case for minLines yet. Closing as completed.


GH-485: Fix multi listener method @KafkaListener

Fixes https://github.com/spring-projects/spring-kafka/issues/485
When looking for matching methods, we matched on no annotation or @Payload.
Match should have been no annotation(s) or not @Header.
cherry-pick to 2.0.x, 1.3.x

... backported to 2.0.x and as https://github.com/spring-projects/spring-kafka/commit/bf52586436a8db62c920d9acd3cdfb30e9f68bd3 into 1.3.x after fixing versions compatibility.


Hi3518EV100 streaming RTSP segfaults after a while

Required information

Camera board id: Hi3518EV100
OpenIPC version:  <IP_ADDRESS>-lite
Commit:
Branch: stable
Tag:
installation method: by uboot/tftp
modified majestic.yaml: no
cat /dev/kmsg
killall majestic
ulimit -c unlimited
echo /tmp/%e.%p.%s.%t.core > /proc/sys/kernel/core_pattern
majestic
Core dump file from /tmp/ , e.g. /tmp/majestic.806.11.1619707881.core

Issue description
When streaming video to vlc, majestic segfaults after a few minutes - randomly from 1 to 30 minutes
Expectations
Failure free streaming
Steps to reproduce

Start majestic - either autostart or from command line
Connect from VLC to stream 0

Information to attach
majestic.log
majestic.11990.11.1699461950.core.zip

I don't think you will get an answer to your question in this form, unfortunately this is too broad a question.
VLC is not a panacea, please try other programs to get the stream, disable all unused services in majestic.yaml, install prometeus and control the parameters online - this is the only way to get more data and find which block is problematic.
But in 99% of cases, memory and buffering are always to blame; there is too little of it for all functions.

Related https://github.com/OpenIPC/majestic/issues/171


Undefined behavior and leak when doing edit-data

Hi, UBSan found this kind of error. It seems to only happen when NACM is enabled.
[INF]: SR: Published event "rpc" "/ietf-netconf-nmda:edit-data" with ID 1 priority 0 for 1 subscribers.
[INF]: SR: Processing "/ietf-netconf-nmda:edit-data" "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
/home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3107:5: runtime error: store to misaligned address 0x604000066de1 for type 'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x604000066de1: note: pointer points here
 63 6f 6c  00 be be be be be be be  be be be be be be be be  be be be 00 00 00 00 00  00 00 00 00 00
              ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3107:5 in
/home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3072:35: runtime error: load of misaligned address 0x604000066de1 for type 'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x604000066de1: note: pointer points here
 63 6f 6c  00 0e 00 00 00 61 63 63  65 73 73 2d 64 65 6e 69  65 64 00 00 00 00 00 00  00 00 00 00 00
              ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3072:35 in
[ERR]: SR: Diff check callback failed (Operation not authorized).
[ERR]: SR: User callback failed.
[INF]: SR: Failed processing of "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
[ERR]: SR: Diff check callback failed (Operation not authorized).
[WRN]: SR: Event "rpc" with ID 1 priority 0 failed (User callback failed).
[ERR]: SR: User callback failed.
[ERR]: NP: Failed to send an RPC (User callback failed).
/home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3135:31: runtime error: load of misaligned address 0x60f00005fff1 for type 'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x60f00005fff1: note: pointer points here
 63 6f 6c  00 0e 00 00 00 61 63 63  65 73 73 2d 64 65 6e 69  65 64 00 5c 00 00 00 41  63 63 65 73 73
              ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3135:31 in

Also this kind of leak happens when deleting a non-existing leaf:
==191141==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x55cbb8366551 in calloc (/opt/cesnet-au/Netopeer2/bin/netopeer2-server+0x123551)
    #1 0x7faa3a14d6f1 in lyd_create_meta /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/tree_data.c:2892:10
    #2 0x7faa3a14e537 in lyd_new_meta2 /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/tree_data.c:1345:12
    #3 0x7faa39bb11cf in sr_edit_diff_find_oper /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/edit_diff.c:1408:26
    #4 0x7faa39b1bcf0 in sr_edit_batch /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:2225:14
    #5 0x55cbb83d5bf8 in np2srv_rpc_editdata_cb /home/vk/git/netconf-cli/submodules/dependencies/Netopeer2/src/netconf_nmda.c:315:10
    #6 0x7faa39c5173a in sr_shmsub_rpc_listen_call_callback /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/shm_sub.c:2949:21
    #7 0x7faa39c4e448 in sr_shmsub_rpc_listen_process_rpc_events /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/shm_sub.c:3234:25
    #8 0x7faa39b25104 in sr_subscription_process_events /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:3240:25
    #9 0x7faa39b25a2a in sr_process_events /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:3294:10
    #10 0x7faa39c57a01 in sr_shmsub_listen_thread /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/shm_sub.c:3627:15
    #11 0x7faa399f7258 in start_thread (/usr/lib/libpthread.so.0+0x9258)

Indirect leak of 10 byte(s) in 1 object(s) allocated from:
    #0 0x55cbb8366399 in malloc (/opt/cesnet-au/Netopeer2/bin/netopeer2-server+0x123399)
    #1 0x7faa3a0e2ceb in dict_insert /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/hash_table.c:243:28
    #2 0x7faa3a0e4a34 in lydict_insert /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/hash_table.c:282:14
    #3 0x7faa3a33acc8 in parse_ext /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:932:9
    #4 0x7faa3a36d633 in parse_module /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:4287:13
    #5 0x7faa3a37cbb6 in yang_parse_module /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:4671:11
    #6 0x7faa3a2d6ef1 in lys_parse_in /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/tree_schema.c:1573:15
    #7 0x7faa3a125ed8 in ly_ctx_new /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/context.c:295:9
    #8 0x7faa39b624b5 in sr_ly_ctx_new /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:1558:12
    #9 0x7faa39bfed4b in sr_shmmain_ly_ctx_init /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/shm_main.c:432:21
    #10 0x7faa39b02457 in sr_conn_new /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:72:21
    #11 0x7faa39b02457 in sr_connect /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:173:21
    #12 0x55cbb839ed76 in server_init /home/vk/git/netconf-cli/submodules/dependencies/Netopeer2/src/main.c:542:10
    #13 0x55cbb839ed76 in main /home/vk/git/netconf-cli/submodules/dependencies/Netopeer2/src/main.c:1307:9
    #14 0x7faa396e3b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)

Indirect leak of 7 byte(s) in 1 object(s) allocated from:
    #0 0x55cbb8366399 in malloc (/opt/cesnet-au/Netopeer2/bin/netopeer2-server+0x123399)
    #1 0x7faa3a0e2ceb in dict_insert /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/hash_table.c:243:28
    #2 0x7faa3a0e4a34 in lydict_insert /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/hash_table.c:282:14
    #3 0x7faa3a37e031 in parse_ext_substmt /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:884:9
    #4 0x7faa3a37e1f2 in parse_ext_substmt /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:892:9
    #5 0x7faa3a33af20 in parse_ext /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:943:9
    #6 0x7faa3a36d633 in parse_module /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:4287:13
    #7 0x7faa3a37cbb6 in yang_parse_module /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/parser_yang.c:4671:11
    #8 0x7faa3a2d6ef1 in lys_parse_in /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/tree_schema.c:1573:15
    #9 0x7faa3a125ed8 in ly_ctx_new /home/vk/git/netconf-cli/submodules/dependencies/libyang/src/context.c:295:9
    #10 0x7faa39b624b5 in sr_ly_ctx_new /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:1558:12
    #11 0x7faa39bfed4b in sr_shmmain_ly_ctx_init /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/shm_main.c:432:21
    #12 0x7faa39b02457 in sr_conn_new /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:72:21
    #13 0x7faa39b02457 in sr_connect /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/sysrepo.c:173:21
    #14 0x55cbb839ed76 in server_init /home/vk/git/netconf-cli/submodules/dependencies/Netopeer2/src/main.c:542:10
    #15 0x55cbb839ed76 in main /home/vk/git/netconf-cli/submodules/dependencies/Netopeer2/src/main.c:1307:9
    #16 0x7faa396e3b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)

SUMMARY: AddressSanitizer: 89 byte(s) leaked in 3 allocation(s).

Let me know if you need reproducers for these.

Please try it now (latest sysrepo), ideally all the problems should be fixed.

Both errors are fixed, but now I got another error:
[INF]: SR: Processing "/ietf-netconf-nmda:edit-data" "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
/home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3072:35: runtime error: load of misaligned address 0x604000068de1 for type 'uint32_t' (aka 'unsigned int'), which requires 4 byte alignment
0x604000068de1: note: pointer points here
 63 6f 6c  00 0e 00 00 00 61 63 63  65 73 73 2d 64 65 6e 69  65 64 00 00 00 00 00 00  00 00 00 00 00
              ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/vk/git/netconf-cli/submodules/dependencies/sysrepo/src/common.c:3072:35 in
[ERR]: SR: Diff check callback failed (Operation not authorized).
[ERR]: SR: User callback failed.
[INF]: SR: Failed processing of "rpc" event with ID 1 priority 0 (remaining 1 subscribers).
[ERR]: SR: Diff check callback failed (Operation not authorized).
[WRN]: SR: Event "rpc" with ID 1 priority 0 failed (User callback failed).
[ERR]: SR: User callback failed.
[ERR]: NP: Failed to send an RPC (User callback failed).
[INF]: NP: Session 1: thread 3 event new RPC.
[INF]: NP: Session 1: thread 3 event reply error.

Again, when doing a basic edit-data operation.

Missed that one, should be fine now.

It works, thanks.


[Feature] Css utilities for sizing

Feature request type
Other
Component name
No response
Is your feature request related to a problem?
New user here. One thing that I find frustrating is that there are no sizing utilities as found in other libraries (e.g. bootstrap, tailwind).
Describe the solution you'd like
These sort of utilities are needed:

width: w-25, w-50, w-75, w-100, w-auto
height: h-25, h-50, h-75, h-100, h-auto
min-width/height
relative to viewport

Have you seen this feature anywhere else?
bootstrap
Describe alternatives you've considered
Custom css
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

i'm created this and commit that soon.


Fix Twitter avatars by using DuckDuckGo's Twitter API proxy

Resolves #121

Just tested this on a personal Vercel deployment and DuckDuckGo seems to be doing a similar thing to Twitter, it won't work for requests from that IP address. So this doesn't work, sorry!


CFFL

CFFL

Linter check found the following problems:
The following problems have been found:
ERROR: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:16: pip_install_args: pip install should be run with --no-deps.
ERROR: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:21: missing_wheel: For pypi packages, wheel should be present in the host section
INFO: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:39: invalid_url: https://ansible.com/ : URL domain redirect ansible.com ->  www.ansible.com
WARNING: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:42: missing_description: The recipe is missing a description
ERROR: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:42: missing_documentation: The recipe is missing a doc_url or doc_source_url
ERROR: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:42: missing_dev_url: The recipe is missing a dev_url
ERROR: /tmp/abs_eagcs1167j/clone/recipe/meta.yaml:42: missing_license_family: The recipe is missing the about/license_family key.
Errors were found


feat: Solid custom styling and content

@juliusmarminge Moved the styling logic and similar utility functions to uploadthing/package. I also had to make some more generic typing since React and Solid have different types for Element and CSSProperties. I wonder what do you think about following
styleFieldToCssObject<"solid", ButtonStyleFieldCallbackArgs>(
          $props.appearance?.button,
          styleFieldArg,
     )

Ideally, second generic argument should be inferred from second function argument type, but not sure how to achieve such behavior

I think i fixed so the generics are inferred

@juliusmarminge I implemented something like I mentioned previously. User won't see "__runtime" in autocomplete suggestions and it is not part of the arguments object in runtime

Though now I'm using as for callback arguments objects. If some changes contents to invalid ones, TS won't be able to spot an error

I was thinking about something like following:
type DropzoneStyleFieldCallbackArgs = {
  __runtime: "solid";
  ready: () => boolean;
  isUploading: () => boolean;
  uploadProgress: () => number;
  fileTypes: () => string[];
  isDragActive: () => boolean;
};
type RuntimeCallbackArgs = Omit<DropzoneStyleFieldCallbackArgs, "__runtime">;

const runtimeArg: RuntimeCallbackArgs = {
    ready: ready,
    isUploading: uploadedThing.isUploading,
    uploadProgress: uploadProgress,
    fileTypes: () => fileInfo().fileTypes,
    isDragActive: () => isDragActive,
  }

  const styleFieldArg = {
    ...runtimeArg
  } as DropzoneStyleFieldCallbackArgs;

With something like above we can be sure that runtime arguments are typesafe and no unexpected changes are going to be merged


Support for enum types

Is this supported?

Depends on your definition of "supported", I guess. Any type you put into fizz will be passed through directly to the database if fizz doesn't know what to do with it. So it will work with any database type you give it. On the Go side you have to use a type that would support the database type you want to use. Does that help?

Can you help guide me on how to use this with fizz:
https://www.postgresql.org/docs/10/static/functions-enum.html

In that case just use a *.sql migration to create the enum type.


cleanup event triggers

Codecov Report

Merging #352 into experimental will decrease coverage by 0.07%.
The diff coverage is 77.77%.

@@               Coverage Diff                @@
##           experimental     #352      +/-   ##
================================================
- Coverage         81.89%   81.82%   -0.08%
================================================
  Files                23       23
  Lines              1033     1040       +7
================================================
+ Hits                846      851       +5
- Misses              187      189       +2

Impacted Files
Coverage Δ

vent/core/file-drop/file_drop.py
93.1% <77.77%> (-6.9%)
:arrow_down:

Continue to review full report at Codecov.

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


Updated PowerBI installer file hash

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.0 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Closes #19347, no idea why the bot was deleting the whole architecture version?
Microsoft Reviewers: Open in CodeFlow

Just noticed minimum OS version is Windows 8.1, would that be version <IP_ADDRESS>, or version <IP_ADDRESS>?
https://docs.microsoft.com/en-us/power-bi/fundamentals/desktop-get-the-desktop#minimum-requirements

Ohshit just saw the PR cuz it passed the Pipeline
This is a Dynamic URL so the version is wrong in this one, can you update 2.94.921.0 and add the x64 arch?

/AzurePipelines run

@OfficialEsco, can you see wht this thing isn't moving ahead?  Should be good now 🤔

Close and Reopen the PR (same button just so you don't open another PR)


KAFKA-12981 Ensure LogSegment.maxTimestampSoFar and LogSegment.offsetOfMaxTimestampSoFar are read/updated in sync

This PR refactors LogSegment.offsetOfMaxTimestampSoFar and LogSegment.maxTimestampSoFar to single tuple to ensure consistent update/read
More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@thomaskwscott Could you also update the description of the PR? It would be great to explain how it relates to KIP-734 as well.


Feature -> price data fetch without refreshing page

Issue Link
Trello Board Issue
Description
This pull request adds the react-query library to make it easy to handle server state.
As a draft PR, this currently only updates the way price is fetched and displayed on the dashboard view.
The price is refetched every 10 seconds. This interval can be adjusted in the constants file for intervals.
How To Review This

Pull branch
run yarn
run yarn start

Observe the price on the dashboard.
Observe the react-query devtools ( the weird icon on the lower left, click to open )
the react query devtools only show on non production environment
Checklist:

[x] I have run yarn lint and there are no lint or typescript errors.
[x] The production build passes.
[ ] I have updated the documentation accordingly.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed locally.

References
React Query Documentation

If you guys are good with this approach, it can be applied to all instances of price, as well as other data points such as TVL, MC, Staked / Total, etc...
This would also be a good differentiator from other copycats. ( at least until they copy this, too.. )


zip .env files before encryption

What are you changing?

Makefile

Provide some background on the changes
Our production .env file is at the size limit of what may be encrypted using aws kms encrypt.
We could use secrets manager (see, for example https://jashby2.medium.com/injecting-secrets-from-aws-secrets-manager-into-kubernetes-9aad3c98e078#:~:text=Grab a list of secrets,cluster as native k8s secrets) though the process is a bit cumbersome. As a quick fix, this PR zips the file before encrypting, reducing the size by about 40%.
Note that I haven't included the new encrypted files .env.zip.enc.aws yet (nor deleted the .env.enc.aws files)

Is this ready for review? (the PR is still in draft)

Didn't want to push the new encrypted zip files if someone saw a glaring error somewhere. Will do that now.

ok, right now I've got both old and new encrypted files, will merge this and we can see if it works, and then clean up in a subsequent PR.

I have some gc articles env vars to add, I'll see it it works using the new zipped process in a PR after this one.