CORGI-317: Use foreign keys in taxonomies

@jasinner @mprpic Please review when you have time and are not busy. This still needs much more work, including a bugfix for the two failing tests and manual testing locally. But I wanted to discuss the approach and see if there was a better way to implement these changes, before I spend more time testing.
I'll clean up the TODO comments, do a final review, and test locally before merging, but there should be no further changes here. I'm going to make the ProductComponentRelation table use foreign keys in another MR since this one is already huge.
In general, this should change how we link models together, and present only minor user-facing changes (mostly the order of properties in the schema). Most of the work is in simplifying the models.py code, with a small amount of cleanup in the tasks code, templates, and tests. I also included some bugfixes I noticed as I was going through each file.
In particular, there should be no changes to the available API endpoints, arguments they take, or field names they return. Currently there are some differences in the autogenerated openapi.yml schema file. I'm working now to debug these and I expect them to be gone in the final version.

The approach here is to use ManyToManyFields to link Channels to ProductVariants. This is because one ProductVariant can obviously have many Channels, but two different ProductVariants may ship to the same Channel. Because of this, we also have to use ManyToManyFields to link Channels to all other ProductModel subclasses (Products, ProductVersions, and ProductStreams).
Similar logic applies to Components, so they're also linked to ProductModel subclasses using ManyToManyFields.
The ProductModel subclasses themselves are a little special. Because we know that one ProductVariant always has only one parent ProductStream, I chose to link them together using a ForeignKey. However, this may be a bad choice since it complicates the code a bit. Whenever we call save_product_taxonomy() (or certain generic serializer methods), we have to check which ProductModel subclass we're operating on, then do one of two things:
If we have a forward relationship (e.g. foreign key from ProductVariant to ProductStream), we can assign a model instance to the foreign key field and access its properties directly:
my_pv.productstreams = my_ps
print(my_pv.productstreams.name)

If we have a reverse relationship (e.g. related_set from ProductStream to ProductVariant), we have to use .add() or .set() to link the models together, and we have to iterate over each related model instance to access properties:
my_ps.productvariants.add(my_pv)
for pv in my_ps.productvariants:
    print(pv.name)

This could be simplified if we just use a ManyToManyField for the ProductModel taxonomy, like we already do for the Channel and Component taxonomies. Then it won't matter which side of the relationship we're on, since we'll always use a manager and iteration to access the related objects (the second form given above), even if there's only one linked object.
ManyToManyFields would also keep our code a bit more flexible, if we ever think that e.g. we might have to link one ProductVariant to multiple ProductStreams in the future (to support layered products??). However, ManyToManyFields alone won't be enough to fully support ProductModels that participate in multiple trees / taxonomies, since our current code has many baked-in assumptions.
I think I slightly prefer the current approach, since the stricter taxonomy is more accurate relative to the relationships we actually use today. It also simplifies some boilerplate and lets us avoid calling save_product_taxonomy() in some cases.  Using a ForeignKey should also be more performant since they're automatically indexed, but ManyToManyFields use a through table (which requires an extra JOIN). I don't have any strong preferences, though - any thoughts you have are welcome.

There is one user-facing API change I just noticed. Channels used to return a list of only related model ofuris, like below:
            "products": [
                "o:redhat:3amp"
            ],
            "product_versions": [
                "o:redhat:3amp:2"
            ],
            "product_streams": [
                "o:redhat:3amp:2"
            ],
            "product_variants": [
                "o:redhat:3amp:2:8base-3scale-2.12"
            ]

Now we return a list of dicts with the ofuri, name, and a link:
"products": [
                {
                    "name": "3amp",
                    "link": "http://localhost:8008/api/v1/products?ofuri=o:redhat:3amp",
                    "ofuri": "o:redhat:3amp"
                }
            ],
            "product_versions": [
                {
                    "name": "3amp-2",
                    "link": "http://localhost:8008/api/v1/product_versions?ofuri=o:redhat:3amp:2",
                    "ofuri": "o:redhat:3amp:2"
                }
            ],
            "product_streams": [
                {
                    "name": "3amp-2",
                    "link": "http://localhost:8008/api/v1/product_streams?ofuri=o%3Aredhat%3A3amp%3A2",
                    "ofuri": "o:redhat:3amp:2"
                }
            ],
            "product_variants": [
                {
                    "name": "8Base-3SCALE-2.12",
                    "link": "http://localhost:8008/api/v1/product_variants?ofuri=o:redhat:3amp:2:8base-3scale-2.12",
                    "ofuri": "o:redhat:3amp:2:8base-3scale-2.12"
                }

I think the newer form is more useful and would prefer keeping it...we'd just need to make sure our users are aware.


Make base URL getters available to extending classes

Resolves issue #73

Released in version 2.2.0.


Separates test into its own spec

What type of PR is this?
/kind failing-test
What does this PR do / why we need it:
It separates an edge case of tests into its own spec.
Which issue(s) this PR fixes:
Fixes #4301
PR acceptance criteria:

[ ] Unit test

[x] Integration test

[ ] Documentation

[x] I have read the test guidelines

How to test changes / Special notes to the reviewer:
Test should pass. Especially for #4063.

/retest
CI failing due to #4347

/retest
CI failing due to #4347

/lgtm

/lgtm


Add link to matrix rooms.

I added the link for our Matrix rooms to the README so people can find it more easily.

Almost forgot about that, thanks!


Feature Request: Add support to set future date as notBefore when requesting for certificate

Is your feature request related to a problem? Please describe.

We want to issue a certificate with NotBefore set as some future time.
Describe the solution you'd like

Instead of using time.Now() here - https://github.com/cert-manager/cert-manager/blob/master/pkg/util/pki/certificatetemplate.go#L58, can you add support to set this as custom value?
/kind feature

+1 this is an important feature we also want.

Feel free to create a PR to add this feature.

I think a new field would be preferable if we want this feature to be widely supported. The logic itself will have to be implemented by each issuer individually, if we only add support to a very limited set of issuers, an annotation might be preferable. Altering the CertificateRequest API is not a decision to be taken without much thought. So, creating a design document first might be desirable.

@inteon Can you explain what do you mean by "logic itself will have to be implemented by each issuer individually"? The was I was thinking is to add these as an optional fields to both Certificate and CertificateRequest API and when we create a x509.CertificateRequest here, we can modify this func as follows -
func CertificateTemplateOverrideDuration(duration time.Duration, notBefore, notAfter *metav1.Time) CertificateTemplateValidatorMutator {
	return func(req *x509.CertificateRequest, cert *x509.Certificate) error {
		if notBefore == nil {
			cert.NotBefore = time.Now()
		} else {
			cert.NotBefore = notBefore.Time
		}
		if notAfter == nil {
			cert.NotAfter = cert.NotBefore.Add(duration)
		} else {
			cert.NotAfter = notAfter.Time
		}

		return nil
	}
}

The example CertificateTemplateOverrideDuration function would work. "logic itself will have to be implemented by each issuer individually" refers to the fact that cert-manager has 5 in-tree issuers and a lot of out-of-tree issuers (see https://cert-manager.io/docs/configuration/issuers/). Each issuer will have to be updated to support this new field in the CertificateRequest API. That is not a small task. For that reason, I would advise to create a design document.

/remove-lifecycle stale


PostgreSQL

Is it possible your gem work with PostgreSQL?

How to configure to work with postgresql?

heroku_external_db uses the same environment variable format that Heroku itself does for its database configuration:
adapter://user:password@host/database
So for postgres, you would put postgres://... as the variable name.
See http://devcenter.heroku.com/articles/database#database_urls for more information from Heroku.


remove dependencies vector-map and next-gen

Dependencies like next-gen and vector-map depend on syn v1 crate. But most popular rust crates moved to syn v2. So, anytime you depend on xot crate , you are probably adding two different syn versions to your dependency tree.

Having two versions of the same crate in your dependency tree is bad.
syn having long compile times makes it really bad.
If xot uses miette (which depends on syn v2) in nearby future, then it will be really really really bad.

I am hoping that xot could remove these dependencies in favor of alternatives (even at the cost of slight runtime performance).

Thanks for pointing this out!
next-gen has alternatives I am aware of.
For vector-map somw digging is required. It's used to store XML attributes which are generally limited in number. But perhaps a hashmap implementation is fine.

litemap is great. It is used in icu4x which is maintained by the unicode organisation. So, it is guaranteed to be maintained for a while.
Ideally, like you said, using official std BTreeMap should be good enough in terms of cache locality. And we have one less dependency to worry about. litemap docs do state that the performance is similar above 12 elements for both containers.

On main I've now eliminated VecMap in favor of BTreeMap. The test still run and I don't expect much breakage in my own code that uses Xot.
Getting rid of next-gen is more tricky. The alternative with the same performance, genawaiter, has the exact same problem you mentioned, and also depends on syn v1.
Rewriting the various generators to plain Rust iterators isn't a very pleasant exercise and would likely make the code less maintainable.
For alternatives with less performance (which may be acceptable if it gets rid of syn v1), see also here: https://github.com/Tuupertunut/rust-generator-benchmark

vecmap-rs is now also removed. I've replaced next-gen with genawaiter on a whim, because the API was slightly nicer.


Logs Stabilization Plan

This issue is to track the stabilization of the logs signal
API
Current status: Logs API is currently in a separate package from the main API and is experimental

[ ] Integrate experimental logs API into the main API package
[ ] Conduct a specification review to ensure compliance
[ ] Move logs API to the stable section of the package

SDK
Current status: Logs SDK is currently experimental

[ ] Conduct specification review to ensure compliance
[ ] Add logs SDK to Node SDK package
[ ] Stabilize API and SDK together

Integrate experimental logs API in main API package PR is available here #4862


fix: config for stream false

Some huggingface models are offered over the openai-compatible interface, but don't support streaming. When I tested them, I realized that stream: false in the config yaml didn't control streaming. This matters because I tried using the non-streaming interface, and they weren't getting called.
The following config lets a user call hugging face models for free:
model: huggingface:meta-llama/Meta-Llama-3-8B-Instruct
stream: false
clients:
- type: openai-compatible
  name: huggingface
  api_base: https://api-inference.huggingface.co/v1
  chat_endpoint: /chat/completions
  api_key: hf_SECRET_KEY_HERE
  models:
    - name: HuggingFaceTB/SmolLM-1.7B
    - name: google/gemma-2-2b-it
    - name: meta-llama/Meta-Llama-3.1-8B-Instruct # hugging face pro only
    - name: arcee-ai/arcee-lite
    - name: meta-llama/Meta-Llama-3-8B-Instruct

(I want to implement huggingface like the other openai-compatible platforms, but figured this fix should come first)
I tested this fix with replicate, openai, and hugging face so far; they all support stream: false

I started with this PR because I wanted to use a hugging face translation and summarization models in aichat, and started implementing a huggingface.rs for the purpose but couldn't get streaming to work. Then I realized that HF has an openai compatible interface endpoint and gave up for now

You didn't fix anything.
I have tested stream: true in config.yaml, and everything works fine.


fix(dashboard-editor): internationalization fixes

Summary
Need to pass through a locale prop to the dashboard editor so that the cards render the correct date labels.
Also fixes a bug where the translateWithId callback wasn't returning anything.
Change List (commits, features, bugs, etc)
Pass through a new locale prop for the DashboardEditor.
Fix translateWithId to return the new strings.
Small fix for the dataSeriesItems edit button tooltip position that was hiding under its parent.
Acceptance Test (how to verify the PR)
Pass a locale of de (or any other locale that formats dates differently) to the DashboardEditor and confirm that the date labels show the new locale format.
Regression Test (how to make sure this PR doesn't break old functionality)
Make sure by default, nothing has changed in the cards

@jkeen FYI


TaskMaster.md

Application Name: TaskMaster
Tier: 1-Beginner
Description:
TaskMaster is a simple task management application designed for beginners. Its main purpose is to help users keep track of their tasks and stay organized. The application allows users to create, edit, and mark tasks as completed.
User Stories

[ ] User can create a new task with a title and description.
[ ] User can edit the title and description of an existing task.
[ ] User can mark a task as completed.
[ ] User can view a list of all their tasks.
[ ] User can delete a task.
[ ] User can filter tasks by completed and incomplete status.

Bonus Features

[ ] User can set due dates for tasks.
[ ] User can categorize tasks into different lists or categories.
[ ] User can prioritize tasks with a simple high, medium, or low priority system.
[ ] User can search for tasks by title or keyword.
[ ] User can set reminders for important tasks.
[ ] User can sign up and log in to save their tasks across sessions.

Resources Needed

A programming environment (e.g., Visual Studio Code, PyCharm, or any text editor)
Basic knowledge of a programming language (e.g., Python, JavaScript)
Familiarity with web development (HTML, CSS, and optionally, JavaScript for bonus features)
A web hosting service if you want to deploy the application online

Useful Links and Resources

HTML Tutorial
CSS Tutorial
JavaScript Tutorial
GitHub for Version Control
Hosting a Website

Example Projects

TodoMVC: A collection of examples showcasing different implementations of a todo list application using various web technologies.
Wunderlist: An advanced task management application that offers features like due dates, collaboration, and more. This can serve as inspiration for bonus features.
My Todo app: This is a very basic todo app created by myself hope it helps.

kindly add this as a project idea


Unknown Kotlin JVM target: 23

Hello guys! I'm having troubles running flutter run --flavor <flavorName> -t lib/main_<flavorName>.dart. Specifically in the Gradle synch. If I run the Gradle synch form Android Studio (on the same project of course) it works just fine. But if I do run with flavorizr command it gives me the following error:
`What went wrong:
Execution failed for task ':app:compileProdDebugKotlin'.

Error while evaluating property 'compilerOptions.jvmTarget' of task ':app:compileProdDebugKotlin'.
Failed to calculate the value of property 'jvmTarget'.
Unknown Kotlin JVM target: 23`

My gradle file looks like this:
plugins {
    id "com.android.application"
    // START: FlutterFire Configuration
    id 'com.google.gms.google-services'
    id 'com.google.firebase.crashlytics'
    // END: FlutterFire Configuration
    id "kotlin-android"
    // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
    id "dev.flutter.flutter-gradle-plugin"
}

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
def localPropertiesFile = rootProject.file('local.properties')

ext {
    flutterVersionCode = localPropertiesFile.exists() ? new Properties().with { props ->
        localPropertiesFile.withReader('UTF-8') { reader -> props.load(reader) }
        props.getProperty('flutter.versionCode', '1')
    } : '1'

    flutterVersionName = localPropertiesFile.exists() ? new Properties().with { props ->
        localPropertiesFile.withReader('UTF-8') { reader -> props.load(reader) }
        props.getProperty('flutter.versionName', '1.0')
    } : '1.0'

    keystoreProperties = keystorePropertiesFile.exists() ? new Properties().with { props ->
        keystorePropertiesFile.withInputStream { stream -> props.load(stream) }
        props
    } : null
}

android {

    // ----- BEGIN flavorDimensions (autogenerated by flutter_flavorizr) -----
    flavorDimensions += "flavor-type"

    productFlavors {
        prod {
            dimension "flavor-type"
            applicationId "it.matbuompy.ginevra_distribuzioni"
            resValue "string", "app_name", "Ginevra Distribuzioni"
        }
        dev {
            dimension "flavor-type"
            applicationId "it.matbuompy.ginevra_distribuzioni.dev"
            resValue "string", "app_name", "Ginevra Distribuzioni Dev"
        }
    }

    // ----- END flavorDimensions (autogenerated by flutter_flavorizr) -----

   namespace = "it.matbuompy.ginevra_distribuzioni"
    compileSdkVersion Math.max(flutter.compileSdkVersion, 34)
    ndkVersion =  "27.0.12077973"

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_23
        targetCompatibility = JavaVersion.VERSION_23
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId = "it.matbuompy.ginevra_distribuzioni"
        // You can update the following values to match your application needs.
        // For more information, see: https://flutter.dev/to/review-gradle-config.
        minSdk = 28
        targetSdk = flutter.targetSdkVersion
        versionCode = flutter.versionCode
        versionName = flutter.versionName
    }

    signingConfigs {
        release {
            keyAlias = keystoreProperties['keyAlias']
            keyPassword = keystoreProperties['keyPassword']
            storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword = keystoreProperties['storePassword']
        }
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig = signingConfigs.release

            minifyEnabled true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

flutter {
    source = "../.."
}

dependencies {
    implementation 'com.google.android.play:integrity:1.4.0' // Add this line
    // Add other dependencies if needed
}

configurations.all {
    exclude group: 'com.google.android.gms', module: 'play-services-safetynet'
}

And no matter if I use these options:
kotlinOptions {         jvmTarget = JavaVersion.VERSION_1_8     }
It won't never work when running the flavorizr command.
My flavorizr file is as follows:
flavors:
  prod:
    app:
      name: "Ginevra Distribuzioni"

    android:
      applicationId: "it.matbuompy.ginevra_distribuzioni"

    ios:
      bundleId: "it.matbuompy.ginevraDistribuzioni"

    macos:
      bundleId: "it.matbuompy.ginevraDistribuzioni"

  dev:
    app:
      name: "Ginevra Distribuzioni Dev"

    android:
      applicationId: "it.matbuompy.ginevra_distribuzioni.dev"
    ios:
      bundleId: "it.matbuompy.ginevraDistribuzioni.dev"
    macos:
      bundleId: "it.matbuompy.ginevraDistribuzioni.dev"

And if I run java -version I get this output:
openjdk version "23.0.1" 2024-10-15 OpenJDK Runtime Environment Homebrew (build 23.0.1) OpenJDK 64-Bit Server VM Homebrew (build 23.0.1, mixed mode, sharing)
Also, my android studio configs are these:

Running it from Android Studio works fine:
Task :gradle:compileJava NO-SOURCE
> Task :gradle:compileGroovy UP-TO-DATE
> Task :gradle:pluginDescriptors UP-TO-DATE
> Task :gradle:processResources UP-TO-DATE
> Task :gradle:classes UP-TO-DATE
> Task :gradle:jar UP-TO-DATE
> Task :prepareKotlinBuildScriptModel UP-TO-DATE

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.10/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD SUCCESSFUL in 3s
4 actionable tasks: 4 up-to-date

What coudl the issue be? Thanks in advance.
UPDATE: If I try to run it from Android Studio it does not work as well. It just does the gradle synch fine. I've done this on all this flavorizr thing on a separate branch, but now even if I switch to previously working branches nothing work on Android.

I don't think it's related to flutter_flavorizr, but it might be related to your Java/Gradle configuration.
Please try with a way lower version of Java like Java17

Yeah, it is weird to me too, but I swear it used to compile and work before i ran flovrizr. I actually have the Android app in tests in the Play Console, and I built it yesterday with the configuration you see above. I'm using gradle 8.10 also, so I don't know if I can lower the Java version, considering it was working before.

Thanks to your suggestion it now works. Thank you! But it is still a mistery what happended to me... May I ask you something? Since I'm using Firebase and have it already configured in the project with flavorizr too, how do I build the project for release? When I run flutter build appbundle or flutter build ios how to I specify what flavor I would like to build the app for?

The same way you do with Flutter run:
flutter build appbundle --flavor <flavorName> -t lib/main_<flavorName>.dart
flutter build ios --flavor <flavorName> -t lib/main_<flavorName>.dart
I'm gonna close this issue as it's not related to this package

Thank you  💙


Add 'name' field to servers

As the name suggests.
Would be nice, I think, for generators to be able to reference them by non-ambiguous names.

I think too.
I think should be server object add name property.
because server object identification only url.
I think short identify properties should be created for generated code.

@handrews  looks fair request , that can be handle in moonwalk or in a 3.2 version , or close forever :) as
as there are work around leveraging server variables or description
we can put this int the backlog set a statement
NB : license has name


Error during compilation when gulp watches for changes

I run npm start
Sometimes when I make a changes, I get an error as below and task is dying.

WebStorm generates these temporary files. What you can do is to ignore them during compilation.


change port

Please add option in script menu to only change port.
Best regards.

No plans for it, as existing client configuration files would need to be updated too.


Experiment setting of fine-tuning on ModelNet40

Hi Hansen,
Thanks for your great work. I have one quick question here.
May I ask what's the detailed experiment setting of fine-tuning on ModelNet40? Could you please provide the command of this task?
Now I'm using:
python train_cls.py --model=dgcnn_cls --dataset=modelnet40 --log_dir=dgcnn_occo --num_point=2048 --restore --restore_path=./path/to/dgcnn_occ_cls.pth

If I made any mistakes, please let me know! Thank you!

Hi @SimingYan . Thanks for your interest, it is the same setting as we trained on ScanObjectNN (in readme file)


fix(cli): fix entrypoint validation on backstage 1.24.0 and above.

Starting with backstage release 1.24.0, the use of ts-node to manage the typescript compilation has been replaced by the use of the @backstage/cli/config/nodeTransform.cjs script based on pirates and @swc/core  (see commit https://github.com/backstage/backstage/commit/2c2f705fe169f72fdac4da84c154d7118598d06f).
We should adapt to this in the the validation of the entrypoints part of the Janus CLI expot-dynamic-plugin command new implementation for backend plugins.

/test

code could use some inline comments (it's unclear to me what you're doing and why) but otherwise lgtm.
why do we need support here for 1.24 and earlier if this is only for 1.26+ ?

why do we need support here for 1.24 and earlier if this is only for 1.26+ ?

I still wanted to keep the previous approach, because we want this command to also work on environments setup by third-parties that would still be based on backstage v1.23.4, which is the version backing RHDH 1.1.
We want the same CLI to support exporting dynamic plugins from third-party repositories for both RHDH 1.1 and 1.2.


Add option to invert Y-axis

Could be a useful feature for Hitbox controllers to use them in a more traditional way with non-fighting games.

Added in abeb3e3


Method: whereNotBetween

// Get posts with number of votes not between 50 and 100
data.posts
  .whereNotBetween('votes', 50, 100)
  .list()

@23doors any idea how to build query for that?
For whereBetween this works:
whereBetween(column, min, max) {
  return this.where([
    [column, 'gte', min],
    [column, 'lte', max]
  ])
}

For whereNotBetween this doesn't work:
whereNotBetween(column, min, max) {
  return this.where([
    [column, 'lt', min],
    [column, 'gt', max]
  ])
}

I can make an additional query to get all records between min and max and exclude those by id.

@Idered We do not have OR in core (and we probably won't add it any time soon) so I think the only way to do it is to make two queries - where column lt min + where column gt max and join the results.

@23doors okey, thanks!


FATAL:  SSL connection is required. Please specify SSL options and retry.

I'm getting this when following these instructions to connect to my Azure PgSQL instance with my Azure AD user:
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
FATAL:  SSL connection is required. Please specify SSL options and retry.
Can you please validate/amend the instructions?

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

ID: f87e092b-c331-8bc9-9061-89f0712adb5a
Version Independent ID: d0ef3b6e-5973-e159-3c73-9eb8dbf2825f
Content: Use Azure Active Directory - Azure Database for PostgreSQL - Single Server
Content Source: articles/postgresql/howto-configure-sign-in-aad-authentication.md
Service: postgresql
GitHub Login: @lfittl
Microsoft Alias: lufittl

@lokijota Thank you for bringing this to our attention. I will investigate this and see what is the root cause.

Hi @lokijota,
Two questions to debug this further:

Are you trying to connect with the Azure AD administrator and getting this error?

Could you try restarting your server and see whether that changes anything? (we've sometimes seen a bug related to caching that we're in the process of fixing - restarts should resolve this for now)

Hi,
1- I'm an FTE, this is in my internal subscription, of which I'm owner/admin.
2- No impact, same error.

@lokijota You need to include the following in your psql statement: sslmode=require
So that user/password authentication looks like:

psql "sslmode=require host=<instance_name>.postgres.database.azure.com user=<user_name>@<instance_name> dbname=postgres"

And AAD Authentication looks like:

psql "sslmode=require host=<instance_name>.postgres.database.azure.com user=<user_name>@.onmicrosoft.com@<instance_name> dbname=postgres"

@lfittl-msft
I could not get AAD authentication to work, as it did not like my token but user/password authentication is successful. I think adding a bit about sslmode=require is needed in the document.

Adding sslmode valid values per PostgreSQL SSL Mode Descriptions documentation: https://www.postgresql.org/docs/current/libpq-ssl.html

I was able to get AAD Authentication to work using Bash Cloud Shell. The doc could use an update with regards to sslmode=. Assigning to content team for review.

Thanks for that additional investigation @Mike-Ubezzi-MSFT - we'll add sslmode=require to the docs.

I am having ssl certificate but how to use it in connection string like "mysql://dbuser:password@host:port/db"?


fix certificate caching, fixes #1033

Looking at http://www.php-fig.org/psr/psr-6/ it seems getItem accepts only one parameter. The expiration must be set on the CacheItemInterface instance

I signed it!

This looks great, thank you!


Invoke-DbaAdvancedRestore (Restore-DbaDatabase) - Format time for .ToPointInTime as iso string

Type of Change

[x] Bug fix (non-breaking change, fixes #7377 )
[ ] New feature (non-breaking change, adds functionality, fixes # )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[ ] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[ ] Pester test is included
[ ] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[ ] Documentation
[ ] Build system

Only coded it, have not tested it.

Tested by user: https://github.com/sqlcollaborative/dbatools/issues/7377#issuecomment-854765847


HSEARCH-2809 Upgrade to Elasticsearch 5.5.0

https://hibernate.atlassian.net//browse/HSEARCH-2809
Tests in progress on Travis + Jenkins.

during local tests it is regularly failing this one:
Tests in error:
ElasticsearchSchemaCreateStrategyIT.alreadyExists:58 » AssertionFailure Elasti...
Tests run: 1264, Failures: 0, Errors: 1, Skipped: 27

@Sanne Sorry about that, it's fixed: https://travis-ci.org/yrodiere/hibernate-search/builds/252370283

awesome! thanks


Implement "sendToAIWithoutDisplay"

[+] feat(genai.go): add sendToAIWithoutDisplay function for sending messages to AI without displaying the response
[+] feat(genai.go): add processAIResponse function to process AI's response and return it as a string

[!NOTE]
The sendToAIWithoutDisplay function is intended for automated summarization in more advanced systems. For instance, once the count of per-line messages (from both the user and AI) reaches 5, the function will automatically summarize the conversation.


glossary

We need to cement the glossary and align SDKS on it:

device?
host/provider?
client?
module/device/jacdac? We moved away from "module" for the DDK but our MakeCode category is still named "module". IMO we should use "Jacdac" as the category name in makecode to cement the name.

Also https://github.com/microsoft/jacdac/issues/317

Action items:

[ ] host/client -> server/client -> Accelerometer[Server/Client]
[ ] device
[ ] module, no change


Number of keys mismatch

Tried generating memory report but large number of keys are missing in memory.csv

@siva-7112 can you share more details?
which version of rdbtools you're using and which version of redis?
what are the types of keys missing (maybe they're all of the same type)?
maybe these are all volatile keys?
redis < 5 doesn't write expired keys into the rdb, so they could still show up in DBSIZE and INFO KEYSPACE, but will be missing from the rdb.
can you try loading this rdb back into redis and see if the same number of keys are gone...

@oranagra
rdbtools - 0.1.4
redis version : 5.0.3
Total Number of keys in redis :
db0:keys=1643582,expires=0,avg_ttl=0
db1:keys=753355,expires=359421,avg_ttl=797119291
db2:keys=73837,expires=5355,avg_ttl=28691183
db15:keys=551540,expires=0,avg_ttl=0
After parsing using rdbtools for memory report total number of keys : 425639
After loading same dump in different redis the number of keys :
db0:keys=1643582,expires=0,avg_ttl=0
db1:keys=753155,expires=359221,avg_ttl=774841181
db2:keys=73837,expires=5355,avg_ttl=32687121
db15:keys=551540,expires=0,avg_ttl=0
As you can see the number of keys missing in  memory report
However,
Total redis size : 2.1 GB
sum of 'size_in_bytes' in memory report is - 1.89 GB
it seems the total  memory is closely matching but the number of key counts have more difference.

@siva-7112 i guess we must be able to reproduce in order to investigate. it would be best if you can narrow down the scenario with some trial and error and find what types of keys are missing, so that you can upload an example rdb with just a few small keys that reproduce the problem.
while you're at it, feel free to fix the bug and issue a PR too 8-)


Fix LFS object list style (#26133)

Backport #26133 by @wxiaoguang
Close #26104 . Only a quick fix, the UI is not perfect.
Before:

After:

Not a blocker

Let's use some convention here for better ui and accessibility.
Could you add red class to delete button.

Not a blocker
Let's use some convention here for better ui and accessibility.
Could you add red class to delete button.
Also this is incomplete header  Lets add a tooltip if it is applicable or add title attribute so that it will be clearly visible.

Since this is a backport, maybe that could be another PR.

Not a blocker
Let's use some convention here for better ui and accessibility.
Could you add red class to delete button.
Also this is incomplete header  Lets add a tooltip if it is applicable or add title attribute so that it will be clearly visible.

Since this is a backport, maybe that could be another PR.

Sure thing 💯


Establish LayerDataProtocol and basic Multiscale wrapper (resuscitate #2683)

Description
After a pair session with @jni, this brings back the LayerDataProtocol and multiscale wrapper from #2683, reverted in #2807.  Still need to go through and cleanup-minimize some things, so marking as draft.
One of the points of #2683 was to make it so that layer.data.dtype and layer.data.shape wouldn't immediately fail for multiscale data (as in #3523, etc...), and this will do that too.    So @jni improved the __getitem__ method here to try to provide "sane default" behavior for someone naively indexing into layer.data:

if someone indexes with a single integer layer.data[0], the behavior is exactly as it currently is: they get the first pyramid level
if someone indexes with a tuple of slices layer.data[:, 10:200], then we use compute_multiscale_level_and_corners to extract a portion of the pyramid for them (This could eventually be improved to be "zoom-aware"... but we're not doing that here).

Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[ ] example: all tests pass with my change

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

ready for review @jni, @sofroniewn
things to note:

I removed the private _data_raw property from image.py ... didn't look like it was being used anywhere, and one can also do image._slice.image.raw
I added a public data_raw property, from discussion with @jni (this is the data exactly as provided by the user).  Ideally, the storage of data_raw would move to the base layer, but then we'd need a data.setter wrapper there.  Seemed better to leave that for datasource type refactors.

actually, @jni, I added a test that i think should pass, but is failing during compute_multiscale_level_and_corners.  could you have a look at it?  It related to a) accepting slices that have None values (for which I added the logic here) and b) a broadcast error in requested_shape / downsample_factors ... not sure if our downsample_factors needs to be fixed.

if I understand the PR correctly the docstring for ImageBase.data attribute should be LayerDataProtocol now, right?

yeah, there could be some follow up to spread this concept as type annotations farther throughout the code, but i was gonna leave that for future PRs

yeah, there could be some follow up to spread this concept as type annotations farther throughout the code, but i was gonna leave that for future PRs

I think that's fine and thanks for the clarifying responses/comments, especially around the scope of this PR.

@tlambert03 after some discussion with @sofroniewn we're all good with merging this one before #3715! Would you mind resolving the conflicts and pinging when it's ready to merge? 🎉

resolved.  I reverted the __getitem__ to the simpler list-like behavior.  I don't imagine it will be around for long, but you can just completely change that method in #3175

Looks like we've still got some test fails, e.g.
  E       AttributeError: type object 'LayerDataProtocol' has no attribute '__annotations__'


Recover continuable after invoking void fail handlers, s.t. continuab…

Solve the second case of issue #46.
@Naios

What was a problem?
In previous revision (modified by 7a5bde32), a continuable is considered completed and will not invoke subsequent handlers after a void fail handler is invoked, as a result it will be blocked if the continuable is waited.
How this PR fixes the problem?
Invoke subsequent handlers after void fail handlers invoked.
Check lists (check x in [ ] of list items)

[x] Additional Unit Tests were added that test the feature or regression
[ ] Coding style (Clang format was applied)

Thanks for your PR.
I think a major issue of your PR is that it changes the meaning of recovery and fail handlers completely:

Currently a continuation chain is not continued after a fail handler is invoked. This makes it possible to perform scoped error handling:.then(_) // 1
.then(_) // 2
.fail(_) // Handles the error of 1 & 2
.then(_) // 3
.fail(_); // Only handles the error of 3

Therefore your changes would break a existing code relying on this behaviour.
In order to recover from a failure handler to return a valid result, cti::recover(_) can be used to continue the continuation on a valid path (it leads to the same result as you achieved by the changes made in your PR, but explicitly).

I think a much better way in solving this issue is to call the cancellation handler after a handled failure (1).
The case of cancellation should already be handled in the handler for wait, and correctly unlock the mutex.
Another possibility is to guard the wait handler through a RAII object that automatically unlocks the mutex on destruction (2) (if not previously unlocked).
Probably solution (1) is preferrable over (2).

If I understand correctly, you would expect the following code to work?
TYPED_TEST(single_dimension_tests, then_after_nonvoid_fail_handler_invoked) {
  bool invoked = false;
  make_exceptional_continuable<int>(supply_test_exception())
                   .fail([]{
                     return 1;
                   })
                   .then([&]{
                     EXPECT_FALSE(invoked);
                     invoked = true;
                   });

  ASSERT_TRUE(invoked);
}

TYPED_TEST(single_dimension_tests, then_after_void_fail_handler_invoked) {
  bool invoked = false;
  make_exceptional_continuable<void>(supply_test_exception())
                   .fail([]{
                     return;
                   })
                   .then([&]{
                     EXPECT_FALSE(invoked);
                     invoked = true;
                   });

  ASSERT_TRUE(invoked);
}

However, they will fail with current revision. Also, you expect the following tests to work.
TYPED_TEST(single_dimension_tests, scoped_fail_handler_not_invoked) {
  bool invoked1 = false;
  bool invoked2 = false;
  make_exceptional_continuable<void>(supply_test_exception())
                   .fail([&]{
                     EXPECT_FALSE(invoked1);
                     invoked1 = true;
                     return;
                   })
                   .then([]{
                     return;
                   })
                   .fail([&]{
                     EXPECT_FALSE(invoked2);
                     invoked2 = true;
                   });

  ASSERT_TRUE(invoked1);
  ASSERT_FALSE(invoked2);
}

TYPED_TEST(single_dimension_tests, scoped_fail_handler_invoked) {
  bool invoked1 = false;
  bool invoked2 = false;
  make_exceptional_continuable<void>(supply_test_exception())
                   .fail([&]{
                     EXPECT_FALSE(invoked1);
                     invoked1 = true;
                     return;
                   })
                   .then([]{
                     std::rethrow_exception(supply_test_exception());
                   })
                   .fail([&]{
                     EXPECT_FALSE(invoked2);
                     invoked2 = true;
                   });

  ASSERT_TRUE(invoked1);
  ASSERT_TRUE(invoked2);
}

With my PR, all above code will succeed.
In regard to recover and cancel, I think cancel should be explicit and recover should be implicit.
In regard to the wait problem, it is not caused by the mutex lock issue. The problem is next handler not called after void fail handler invoked, which is not the case with non-void fail handler. And it is the fatal problem I fixed.

I fixed this issue in https://github.com/Naios/continuable/commit/b51be39e7126c397cec9d13fefdfa3cbbe8291f0 in a different way that doesn't alter the libraries behaviour. Thank you for your PR, although I could not accept it,


GitHub Secret Scanning connector should link back to GitHub

Currently the only reference back to GitHub is in the Identifier, but it's unclear how to get to the alert inside GitHub.
For example, a secret scanning Identifier of
"GitHubSecretScanning 1"
Should be
<REPO_URL>/security/secret-scanning/1

@abirismyname doesn't html_url (which we store as "url" in a finding) references back to the specific alert? https://docs.github.com/en/enterprise-cloud@latest/rest/secret-scanning#list-secret-scanning-alerts-for-an-organization
Or am I misunderstanding your question?


Fix boundaries nveto-recorder

What is the problem / what does the code in this PR do
This pull request solves a bug in the nveto-recorder.
Can you briefly describe how it works?
Since we cannot use an OverlapWindow-Plugin on the level of records and we cannot guarantee that the gap between two chunks is larger than the resolving time of our coincidence, we always have to store all records which fall within the first and last resolving time long window.

Interesting, I thought the history of my fork would get squashed as well.... I think I have to start a new master branch in my fork after this PR

Can you call it ns? I was confused for a brief moment by the comment

Done

Does this mean we loose 1.2 us/chunk only due to chunk boundaries and cannot have data extend beyond a boundary? I can see this becoming quite sub-optimal if we expect signals that are longish as this might become really quite problematic right (as it would be effectively much more than the 1.2 us/chunk? We couldn't trust anything near a chunk-boundary or are you somehow patching the lone_records_nv back into the data-stream later?

We should not lose anything. Below is a little illustration to make things more clear. The code lines above ensure that we store all pulses within the green marked regions. Later we can then use an OverlapWindow plugin to build a coincidence between the pruple marked hits.

Later we can then use an OverlapWindow plugin to build a coincidence between the pruple marked hits.

Exactly, that is why I asked and concluded with:

or are you somehow patching the lone_records_nv back into the data-stream later?

Otherwise we'd never have the purple regions in your drawing.

@WenzDaniel , I'm lost.. What happend here?

:D This happens when you think around 4:30 am: "Hey it would be nice to re-base your repository such, that the git history matches the history of the uspstream master again"....
Luckily I made first a back-up. Let me check if I can retrieve the changes easily.

This bloody rebasing is not working as it should be.... I always get back the old commit history...


Add models for real person, real object and real geoentity

Copy from the MHK java implementation

Comment in the Java code:

todo this in the future should be able to store specific attributes related to the real entity and not found as such in the original sources. Normally these would be normalized values like name, date of birth, date of death; they could be stored as a pseudo kleio file (exported and imported as part of authorities files).

class RealEntity(Entity):
   id: str
   name: str
  status: enum   # one of U=linked (single occurrence), A=Automatic, S=Source, M=Manual linked, V=Valid
  obs

  # Methods
 def same_as(id1:str , id2:str, user="user", status="M", real_id=None) -> str:
   """ Returns a real entity id linking id1 and id2.

        if id1 and id2 are both unliked occurrences then a new real entity is created
        associated with user.  if real_id is given is not given a random id is generated.

       if id1 is a real entity and id2 is not, then id2 is added to id1 and id1 returned
       if id2 is a real entity and id1 is not, swap and do as above.
       if both id1 and id2 are real entities, merge them and keep the id of the real
          entity with higher status V->M->S->A->U

      in all the cases linking two id2 of different types or inheriting from a common type not equal to Entity is an error."""
      return None

def make_real(id1,user="user",,status="U")-> str:
   """ Make  id1 a real entity, return new real id"""
    return None

def not_same_as(id1,rid, silent=False):
     """ detach id1 from rid.

     detaches id from rid, returns error if id1 not in rid and silent=False"""
    return None

class link(Base):   # sqlalchemy base form
    rid: str
    user: str  # link to users
   occ:str.  # id of the occurrence
   status: enum. # M=Manual, S=Source (same as), A=Automatic, U=unliked (single link)

At this point in time it is not clear that the advantages of having specialization of real entities (real persons, real objects, real entities) is worth the extra complexity.  The advantage would be to access elements from the specialized entities, like sex in persons and the_type in geoentities. But this can be done with views which is much simpler to implement.


Fix attempt to unlink directory copied into source package (Python 3.9)

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)
[x] Did you read the contributor guideline?
[N/A] Did you make sure to update the docs?
[N/A] Did you write any new necessary tests?

What does this PR do?
Currently when installing the newest source package from PyPI I get an error like so:
Collecting fairseq
  Using cached fairseq-0.10.2.tar.gz (938 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /home/frankier/sources/datasets/.venv/bin/python3 /tmp/tmp_ujftsgi_in_process.py get_requires_for_build_wheel /tmp/tmpmn0eumq2
       cwd: /tmp/pip-install-dg5d6q9y/fairseq
  Complete output (31 lines):
  Traceback (most recent call last):
    File "setup.py", line 214, in <module>
      do_setup(package_data)
    File "setup.py", line 136, in do_setup
      setup(
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 152, in setup
      _install_setup_requires(attrs)
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
      dist.fetch_build_eggs(dist.setup_requires)
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 60, in fetch_build_eggs
      raise SetupRequirementsError(specifier_list)
  setuptools.build_meta.SetupRequirementsError: ['cython', 'numpy', 'setuptools>=18.0']

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "/tmp/tmp_ujftsgi_in_process.py", line 280, in <module>
      main()
    File "/tmp/tmp_ujftsgi_in_process.py", line 263, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
    File "/tmp/tmp_ujftsgi_in_process.py", line 114, in get_requires_for_build_wheel
      return hook(config_settings)
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 149, in get_requires_for_build_wheel
      return self._get_build_requires(
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 130, in _get_build_requires
      self.run_setup()
    File "/tmp/pip-build-env-hag0sxvp/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 145, in run_setup
      exec(compile(code, __file__, 'exec'), locals())
    File "setup.py", line 217, in <module>
      os.unlink(fairseq_examples)
  IsADirectoryError: [Errno 21] Is a directory: 'fairseq/examples'
  ----------------------------------------
ERROR: Command errored out with exit status 1: /home/frankier/sources/datasets/.venv/bin/python3 /tmp/tmp_ujftsgi_in_process.py get_requires_for_build_wheel /tmp/tmpmn0eumq2 Check the logs for full command output.

I believe the reason for this is that the source package contains the examples directory because it was put there during package creation (it seems the symlink because a directory). Now, when setup.py is run again, it seems the setup.py attempts to unlink the directory, which is not possible because only symlinks can be unlinked. This PR therefore only attempts to unlink it if it is a symlink. I have not thoroughly tested whether my proposed cause is the true cause, but this should fix it in any case.
Note that the source package is fetched because there is no wheel for Python 3.9, so most users will not see this because they will use the wheel.
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@myleott


Add Marathi(mr) translations for month names

Add missing translations for month names in Marathi.

Thanks for the report, however, translations are handled at Transifex.


pm2-dev does not restart server on file changes

I have the following docker-compose.yml file:
version: '3.2'

services:
  backend:
    image: keymetrics/pm2-docker-alpine:8
    ports:
      - 3000:3000
    working_dir: /var/www
    command: ["pm2-dev", "start", "process.yml"]
    volumes:
      - "../..:/var/www"

I am further using the following process.yml pm2 configuration:
---
apps:
  - script: 'src/server.js'
    name: 'my-app'
    interpreter: 'babel-node'
    cwd: '/var/www'

The app starts alright. Unfortunately, it does not react to file changes. docker exec -it <container_id> sh 'ing into the container, I see that the file changes are propagated correctly. Yet, the server is not being restarted from within the container.
Trying the same thing outside a docker container works as expected. File changes trigger a restart with pm2-dev.

I am facing the same issue. Any updates?

I had the same issue. Took me 2 hours to find this...

When working with NFS devices you’ll need to set usePolling: true as stated in this chokidar issue.

Bottom of the page: http://pm2.keymetrics.io/docs/usage/watch-and-restart/

As stated by @hehachris adding usePolling: true in the ecosystem.config.js file worked for me.
module.exports = {
    apps: [
        {
            name: 'token',
            script: 'app.js',
            watch: true,
            "watch_options": {
                usePolling: true
            },
            env: {
                PORT: 3002
            },
            env_production: {
                NODE_ENV: 'production'
            }
        }
    ]
};


It´s not allowed to use combobox with default Maui.DataGrid PropertyName binding definition

Describe the bug
If I use a Combobox/Entry/Picker (or some other user interact control) in a datagrid cell and if I use the default binding (defined as PropertyName and Binding without path), the changes in the model are not reflected.
To Reproduce

Use Maui.DataGrid.Sample project

Add example string test property "TestStr" to model "Team" and define OnPropertyChanged on this property. (e.g. implement INotifyPropertyChanged on model "Team" )

public class Team : INotifyPropertyChanged
{...}

private string _testStr = "someTestValue";
public string TestStr
{
    get => _testStr;
    set
    {
        _testStr = value;
        OnPropertyChanged(nameof(TestStr));
    }
}

Add 2 DataGridColumns (to MainPage.xaml DataGrid). One with DataTemplate with Entry inside and use default Maui.DataGrid binding and other to only show the value of "TestStr" property

<dg:DataGridColumn Title="Test" PropertyName="TestStr" Width="0.75*" x:Name="TestStrEntryColumn">
    <dg:DataGridColumn.CellTemplate>
        <DataTemplate>
            <Label Text="{Binding}" HorizontalOptions="Center" VerticalOptions="Center" />
        </DataTemplate>
    </dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>
<dg:DataGridColumn Title="Test" Width="0.75*" x:Name="TestStrLabelColumn" PropertyName="TestStr">
    <dg:DataGridColumn.CellTemplate>
        <DataTemplate>
            <Entry Text="{Binding}" HorizontalOptions="Center" VerticalOptions="Center" />
        </DataTemplate>
    </dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>

Expected behavior
If I change the value of TestStr property in Entry column, than the changed value will be reflected to model property value and will be in Label Column
Actual behaviour
The changed value is not reflected to model property value and is not reflected to Label column value.
Solution
I can´t use default MAUI.Datagrid binding (propertyName in DataGridColumn definition), but default MAUI/WPF binding with defined Path ({Binding Path=TestStr}).
<dg:DataGridColumn Title="Test" Width="0.75*" x:Name="TestStrEntryColumn">
    <dg:DataGridColumn.CellTemplate>
        <DataTemplate>
            <Entry Text="{Binding Path=TestStr}" HorizontalOptions="Center" VerticalOptions="Center" />
        </DataTemplate>
    </dg:DataGridColumn.CellTemplate>
</dg:DataGridColumn>

Additional context
The main problem is, that you create your own binding with default Grid.BindingContextProperty, but than the MAUI don´t know which BindableProperty use to in the child of ContentView (e.g. for Entry TextProperty, for ComboBox IsCheckedProperty).
cell.SetBinding(BindingContextProperty,
    new Binding(col.PropertyName, source: BindingContext));

You would have to define every special binding for every special user interact control.
var cv = (ContentView)cell;
if (cv.Content is Entry en)
{
    cell.SetBinding(Entry.TextProperty,
        new Binding(col.PropertyName, source: BindingContext));
}
else if (cv.Content is CheckBox chb)
{
    cell.SetBinding(CheckBox.IsCheckedProperty,
        new Binding(col.PropertyName, source: BindingContext));
}
else
{
    cell.SetBinding(BindingContextProperty,
        new Binding(col.PropertyName, source: BindingContext));
}

So, it is not really a bug, but the usage of your Binding is little bit confused, because you rewrite default Binding from MAUI/WPF and you don´t show, how to use user interact controls in your DataGrid and I think, that this sample is needed. So the best solution might be to show how to use this specials controls in your DataGrid in Maui.DataGrid.Sample project, or change the creation of Binding to the better solution prepared for every user interact control (but I think, that this is not possible).

Setting the BindingContext to the value of the corresponding PropertyName is the correct behavior that we want, as it allows us to be agnostic to whatever kind of user controls that the user wants. If this results in values not updating, then that would be a MAUI bug.

I think, that main problem is, that you set Binding on cell to BindingContextProperty, which is default of Grid BindableProperty.
cell.SetBinding(BindingContextProperty,
    new Binding(col.PropertyName, source: BindingContext));

If you want to change the values inside the grid in DataTemplate, you need to specify right BindableProperty of maui component like Entry (Entry.TextProperty), or CheckBox (CheckBox.IsCheckedProperty). So then, you need something like I wrote before:
var cv = (ContentView)cell;
if (cv.Content is Entry en)
{
    cell.SetBinding(Entry.TextProperty,
        new Binding(col.PropertyName, source: BindingContext));
}
else if (cv.Content is CheckBox chb)
{
    cell.SetBinding(CheckBox.IsCheckedProperty,
        new Binding(col.PropertyName, source: BindingContext));
}
else
{
    cell.SetBinding(BindingContextProperty,
        new Binding(col.PropertyName, source: BindingContext));
}

So this is not the bug of MAUI, but maybe of your code.

I now see what you mean.
I added an inline editing mode to the current main branch, which supports a bunch of data types, and it is binding correctly.
I will see what I can do to make it bidirectionally bind correctly with a custom DataTemplate

Is it working better now?


Tree Diagrams

I wonder if trees could be added to Typst so that people can draw binary trees and other such tree diagrams here
If it helps I find myself developing this syntax for typing trees in .txt files:
Read the docs
|Read
|the docs
 |the
 |docs

What about https://mermaid.js.org support? #161

Mermaid seems great, but apparently they have not specifically added tree diagrams yet: https://github.com/mermaid-js/mermaid/issues/3989
If they do though, then I will close this issue in favour of just adding mermaid

It's not perfect, but with plugins in the next release, this is technically possible: https://codeberg.org/Sekoia/gviz-typst (no readme yet, sorry. But it can render relatively complex graphs such as

, so trees are no problem)

This is probably best implemented in packages like the one linked above. Cetz also has a tree layout module.


Unify bulk customization of graph properties like speed and access

See my comment here, ie. we have three approaches:

spatial rules: requires to build an index up front and is best used via iterating through all edges. So usage will be mostly on import time
change graph API: currently does not support polygons and should be used for rather small areas only like for a construction or longer traffic jam
block_area can be used per request but has bugs like #1214 and #1127 (the change graph API highly likely has similar problems)

There are 3 use cases: on import, permanent or temporary per API request.
There are at least 3 performance characterizable approaches: 1. build an index before looping through all edges, 2. loop through a geographically limited set of edges (how to really get all edges?) and collect edge IDs or 3. consider the changed properties only while doing the Dijkstra (geometry.contains at runtime)

How do you propose to unify the code?
Change graph and block area both use the GraphEdgeIdFinder. So the core logic seems to be the same. Maybe these two could become more similar by passing an encoded json into the block area?
The spatial rules have to exist before the edge is created, therefore it cannot use the GraphEdgeIdFinder. I am not sure how we could merge the logic? It might be possible to create a "ChangeGraphSpatialRuleIndex". Then we wouldn't have to update the edges anymore, but could check the properties in the Weighting. Therefore changes would be faster, but routing would be slower.


Encryption key boxes as well as the keys inside are now contraband ba…

Encryption key boxes are now contraband

About the PR
Made the boxes for encryption keys contraband based on their department. An exception from these changes are the passenger/common encryption keys.
Why / Balance
Might help security in investigations.
Technical details
Updated:
parent: BoxEncryptionKeyPassenger ->  parent: [BoxEncryptionKeyPassenger, Base$DepartmentContraband]
Media

Requirements

[ /] I have read and am following the Pull Request and Changelog Guidelines.
[ /] I have added media to this PR or it does not require an ingame showcase.

Breaking changes
N/A
Changelog

tweak: Encryption key boxes from departments are now contraband to the respective department.

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

Is there a way to make them department + command restricted?

You would have to add more contraband types under base_contraband.yml.
IMO the contraband system needs a small refactor to enable job restrictions as preferred under #31047  and to make expanding the system (to include caveats/exceptions like this one) easier.
For now the "unless you have a good reason" text applies.

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

I could test it right now. The boxes are only obtainable by the head of command in their locker IIRC. Hop only gets the keys from their vend.

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

I could test it right now. The boxes are only obtainable by the head of command in their locker IIRC. Hop only gets the keys from their vend.

I think HoP also gets a box of keys of every department in their locker

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

Is there a way to make them department + command restricted? Would make more sense, otherwise HoP having them in their locker in technicallly contraband

I could test it right now. The boxes are only obtainable by the head of command in their locker IIRC. Hop only gets the keys from their vend.

I think HoP also gets a box of keys of every department in their locker

I have about 30-40 hours of HoP. You get keys in the vending machine but never the boxes. The heads get those. Still I loaded as hop and It's not looking good.

If you want to make the keys restricted to their relevant department + command, you can add more entries under multiple departments restricted contraband, like so:
Take an example of a multiple-department restricted contraband item:
https://github.com/space-wizards/space-station-14/blob/126c1786de2ca4112433f797bcba68ef715b364f/Resources/Prototypes/Entities/Objects/base_contraband.yml#L112-L118
And then simply change it to include the departments you want, and give it a sane id:
- type: entity
  id: BaseCargoCommandContraband
  parent: BaseRestrictedContraband
  abstract: true
  components:
  - type: Contraband
    allowedDepartments: [ Cargo, Command ]

And then add that as a parent to your key, of course:
- type: entity
  parent: [ EncryptionKey, BaseCargoCommandContraband ]
  id: EncryptionKeyCargo
  name: cargo encryption key
  description: An encryption key used by supply employees.
  components:
  - type: EncryptionKey
    channels:
    - Supply
    defaultChannel: Supply
  - type: Sprite
    layers:
    - state: crypt_gray
    - state: cargo_label

That way it's okay for heads and the department to have the key. I see heads give out keys all the time to other department heads willing to collaborate. Nothing wrong with it.

t + co

Nice catch, I like this! my temp solution was probably going to involve adding command to everything but this works. I'll test it asap :)

no problem, let me know if it works if you want

don't really feel like boxes should be contraband because it's just boxes and they can be empty

don't really feel like boxes should be contraband because it's just boxes and they can be empty

It goes that way with the syndicate boxes. Plus it's weird for the stuff inside to be contra but the boxes aren't.

no problem, let me know if it works if you want
Looking great! I also updated the encryption keys too so they aren't contraband for command

Sorry for all the closing and reopening, still new to github...

Hey, I asked the admins and the encryption keys should only be restricted to their relevant departments. There is no reason for the CMO or RD to have a security encryption key for example. So could you remove the command restrictions again? Also the boxes don't need contraband labels either, they are just cardboard. Security can check the contents.

els either, they are just cardbo

I guess... yeah my main issue was that HoP would TECHNICALLY be holding contraband when working which just felt off. To fix that you'd need to whitelist the whole department instead of job specific roles.

So in short this PR would not be accepted unless I manage to make it contraband for command (ie. HoP/Cap)
If so can I please use another PR because for some ungodly reason smartgit pushes removing the boxes as contraband to another branch.
Off to bed :)

Adding a high command department which I wanna obscure from lobby start. I'll fix that later.

I fixed it, it's in another branch because I scewed up but here it is I did it by adding a secret department called "High Command" with that department having exceptions for encryption keys.
- type: department
  id: HighCommand
  name: department-HighCommand
  description: department-HighCommand-description
  color: "#334E6D"
  roles:
  - Captain
  - HeadOfPersonnel
  primary: false
  weight: 110
  editorHidden: true```

  Is it particularly useful? For encryption keys not really but I guess you could slap that tag on other stuff that shouldn't be contraband for HoP and Cap and might be useful if other jobs in the same category get added.

It's pretty useful, this can be used to have bartender and janitor restricted items, albeit, a little bit shitcodey... but I don't see it causing huge problems in the future.
Rollback your git if you messed it up, you don't need to create a second branch.

It's pretty useful, this can be used to have bartender and janitor restricted items, albeit, a little bit shitcodey... but I don't see it causing huge problems in the future.
Rollback your git if you messed it up, you don't need to create a second branch.

To label janitor contra you'd have to make a Janitor department with name janitor. I agree it is shitcodey
Also it's fine. It's just that...

the branch doesn't seem to exist for me?

closing cus im putting this on long hold


Disable OP_SHA1

SHA1 is now broken: https://shattered.io/
There's no reason to keep it. We can repurpose the opcode for some useful hashing algorithm, e.g. SHA3

Just one thing to mention, I would be careful to repurpose too many things later. disabling stuff that's borked is fine, but there's txn construction libraries to consider.  I forked dartsv for Cashew, but I would prefer not to have to change it much for now. It's very broken.


Make it possible to set custom headers using only the keyboard when fetching urls

This swaps a custom  implementation for a HTML based one making it keyboard accessiable.

Screencast from 2023-06-01 08-55-00.webm


Rest API: the authentication of privileges

Currently the default role of Privilege is used for debug inside RestApiAuthFilter.java. That should be changed to use the actual role. There are 2 options to set the role of request.

Option 1: Set the role in the http header from the client side. But it's not secure, the attackers can set the privileged role for the other roles. To resolve this, the server should validate the consistence of the role and path, method.
Option 2: Calculate the role according to the request path and method.

Both options need to be implemented from the server side. The option 2 seems friendly to the client. The client don't have to know and understand the concept of role.

Yes, there's currently no authorization in the API. There's a FIXME in RestApiAuthFilter.java ;) I agree, this can only be done server-side, without relying on client parameters.


⚠ ClamAV has degraded performance

In d3ef09c, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 239 ms

Resolved: ClamAV performance has improved in 2931517 after 8 minutes.


fix(start): use client base config value to get client vite manifest path

Currently the build fails when setting the client base in app.config.ts (routers > client > base). This PR replaces the hardcoded _build with the value from the configuration.
Tested by changing the app.config.ts file of the start-basic example to:
import { defineConfig } from '@tanstack/start/config'
import tsConfigPaths from 'vite-tsconfig-paths'

export default defineConfig({
  vite: {
    plugins: () => [
      tsConfigPaths({
        projects: ['./tsconfig.json'],
      }),
    ],
  },
  routers: {
    client: {
      base: 'custom-base'
    }
  }
})

I can't figure out why this change causes the tests to fail. When I run them locally in the failing packages the tests succeed.


[QUESTION]Error after composer upload

Hi
Could you tell me how to fix the issue?
Package version 2.1.0
Laravel version 5.2.19
[Symfony\Component\Debug\Exception\FatalErrorException]
Illuminate\Support\ServiceProvider::mergeConfigFrom(): Failed opening required '/Users/sk/Google Drive/_others/_root/Laravel/prin/database/vendor/maatwebsite/excel/src/Maatwebsite/Excel/../../config/excel.php' (include_path='.:')
Steps to reproduce the behaviour

Composer install
Added ServiceProvider to config/app.php
composer update
--> got the error.

Screenshot

You should probably install the package before adding the service provider.

Thank you Patrick.
I confirmed I cannot composer install or update after adding the service provider.
So whenever I add new package to the composer.json, I remove the service provider manually otherwise I get an error.
Do you know how the update the composer.json with LaravelExcel service provider ?

composer install --no-scripts maybe?


Update metrics-core, metrics-json to 4.2.8 in series/0.22

Updates

io.dropwizard.metrics:metrics-core
io.dropwizard.metrics:metrics-json

from 4.2.7 to 4.2.8.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (4.2.7).
You might want to review and update them manually.
website/src/hugo/content/changelog.md

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.dropwizard.metrics" } ]

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

Uh, I guess I missed a big red X.


added support for Ubuntu distro.

Added debian family install. Tested on test-kitchen with Ubuntu 14.04, 15.04, and 15.10 distros.

Looks good, though I'd like to wait for upstream support in st-isidore-de-seville/cookbook-apt-nginx#3
Once that's in I'm happy to get this pulled in and the test suite/documentation updated.

Sure, no rush. I'm trying to figure out what's wrong with docker on https://github.com/st-isidore-de-seville/cookbook-apt-nginx/pull/3.
Thanks


Automator: update go-control-plane in istio/istio@master

Generated by Automator - 2024-06-09T02:01:09+00:00

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security_istio
9d6687e6310942d745ff09a8aaaf32fcde2620bd
link
true
/test integ-security

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

coverd by https://github.com/istio/istio/pull/51486/files


add ci config

interesting. the tests for this crate require i3 to be installed and running. is there a way to bring it up in the docker container?

I haven't gotten it to work. There is a way to run it inside a docker container with xvfb, but somehow the tests still fail. (Maybe this is due to an older i3 version in the docker container I tried.) I gave up for now.
Btw, I started merging some other things into my master branch in my fork of this repo, since I needed some more features. I guess a good way of looking at the changes is this: https://github.com/tmerr/i3ipc-rs/network. I could try to convert those changes into PRs. (No promises, since I'm busy with something else now.) Would you be interested in that?

OK, thanks for looking into it. I'll have to check out xvfb
Some quick thoughts on the commits:

A function for iterating over the tree seems reasonable. A more explicit name like iter_bfs() would prevent anyone from mistakenly thinking it only iterates over immediate children.
I think I'd rather leave pretty printing out for now to limit the library's scope.
soenkehahn@e698e5f: "num" isn't documented in https://i3wm.org/docs/ipc.html#_tree_reply so I'm afraid we can't use it.
Any lint/formatting fixes are welcome

@tmerr, thanks for the concrete feedback. Very actionable. Again, not promising to work on this soon. :)

I think I'd rather leave pretty printing out for now to limit the library's scope.

Yeah, I think in retrospect I very much agree.

soenkehahn/i3ipc-rs@e698e5f: "num" isn't documented in https://i3wm.org/docs/ipc.html#_tree_reply so I'm afraid we can't use it.

Yeah, I wasn't very proud of this solution either. :/ I was using this to identify the Node that is the currently focused workspace. (For this project: https://github.com/soenkehahn/i3-pretty-tree) But I'll open another ticket for this where we can discuss this further.


Allow GOV.UK Notify client endpoint to be configurable.

Motivation and Context
To allow the use of https://github.com/ONSdigital/sdc-mock-gov-notify in end-to-end/performance tests.
What has changed
Enabled the configuration of the end point via the notify.endpointBaseUrl property.

Why aren't we using something like wiremock instead of creating code to mock API calls?

 Create mock GOV.UK Notify service


style = "fill" isn't working on Points

Description
So, I want to draw a hexagon and add fill to it, I was using Points but style = "fill" isn't working
Any help is appreciated
Version
0.1.216
Steps to reproduce
you can try this example from the official docs https://shopify.github.io/react-native-skia/docs/shapes/polygons#points
Snack, code example, screenshot, or link to a repository
Here's my code
type Demo = {
dimension: number
type: xyzType
pad?: number
}
const Demo = ({ dimension, type, pad = 1 }: DemoProps) => {
const drawingDimension = dimension - pad
const x = drawingDimension / 2
const y = drawingDimension / 2
const dimensionSplit = drawingDimension / 5

const topPoint = vec(x, pad)
const rightPointTop = vec(drawingDimension - pad, y - dimensionSplit)
const rightPointBot = vec(drawingDimension - pad, y + dimensionSplit)

const bottomPoint = vec(x, drawingDimension - pad)
const leftPointTop = vec(pad, y - dimensionSplit)
const leftPointBot = vec(pad, y + dimensionSplit)

const hexagonPoints = [
    topPoint,
    rightPointTop,
    rightPointBot,
    bottomPoint,
    leftPointBot,
    leftPointTop,
    topPoint
];
const color = getColor(type)
return (
    <Canvas style={{ height: dimension, width: dimension }}>
        <Points points={hexagonPoints} color={color} strokeCap={"round"} mode="polygon" style={"fill"} strokeJoin={"round"} strokeWidth={pad}
        >
        </Points>
    </Canvas>
)

}
export default Demo

update: I saw #695
Will it be possible to document it better as the style prop is creating confusion.
Thanks alot :D


Introduce build tags

Fixes #999

Codecov Report

Merging #1000 into master will decrease coverage by 0.16%.
The diff coverage is 38.36%.

@@            Coverage Diff             @@
##           master    #1000      +/-   ##
==========================================
- Coverage   63.43%   63.26%   -0.16%
==========================================
  Files         173      180       +7
  Lines        9966     9976      +10
==========================================
- Hits         6321     6311      -10
- Misses       2858     2879      +21
+ Partials      787      786       -1

Impacted Files
Coverage Δ

pkg/action/xc/xc.go
39.72% <ø> (ø)
:arrow_up:

main.go
27.69% <ø> (ø)
:arrow_up:

pkg/backend/strings.go
40.82% <0%> (-43.05%)
:arrow_down:

pkg/ctxutil/ctxutil.go
86.21% <0%> (-8.13%)
:arrow_down:

pkg/action/clone.go
50% <0%> (-1.22%)
:arrow_down:

pkg/store/sub/rcs.go
100% <100%> (+26.09%)
:arrow_up:

pkg/store/sub/storage.go
100% <100%> (+83.82%)
:arrow_up:

pkg/otp/otp.go
42.42% <100%> (ø)
:arrow_up:

pkg/store/sub/crypto.go
100% <100%> (+12%)
:arrow_up:

pkg/action/version.go
43.14% <100%> (+3.55%)
:arrow_up:

... and 17 more

Continue to review full report at Codecov.

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


iOS: saved stories sidebar item doesn't appear after first save

Have no saved stories.
Save a story.
Go back to the main feeds list; no saved stories item.
Relaunch and it appears.

Few users are going to hit this, since if they have saved story tags, at least some should be populated. Moving to medium priority.

I don't think we need to change anything for this; simply reloading the feeds makes it appear, which is reasonable.  Closing.


Make Hot Reloading optional

First, thanks for this great tool, and congratulations for the release, the upgrade was a snap.
The only problem I have is with hot reloading for a couple of reasons. First, I use micro to write/remove a lot of temp files, and second, I use it with websocket connections.
This mean that my app keep crashing or hanging connections in development.
It would be great if you could make it optional.
Thanks!

Since 1.1.0, you can use --cold! 😊


Switch to Python 3

Closes: #41

@sebdah Any change of getting this merged? Python 2 is pretty dead now.


Proof of concept for coverage statement counting in Treadle

This creates a new treadle execution element, VerifyOp, that keeps count of all the number of times a coverage statements has seen a rising edge of its clock and how many times the enable and predicate are both true.
At the end of the run the a CSV text file is created in the working directory .coverage.txt
Additionally a small pretty printer, CoveragePrettyPrinterMain, that can take the coverage CSV file and the original firrtl file and produces a text rendering of the firrtl with coverage info added at the end of the lines of coverage statements.
By default those lines are color code as follows

red means no coverage hits
cyan means hits but not always
green means coverage hits equals

Specifically

Add a couple of hooks to execution engine to help with coverage file generation
Execution compiler adds VerifyOp's to the the execution stack
Symbol Table builds lists of Coverage statements encountered
ExpressionViewBuilder has handling code also
Added some hints to disambiguate who can't handle a class of Firrtl statements

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: chick:x: ekiwiYou have signed the CLA already but the status is still pending? Let us recheck it.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: chick:x: ekiwiYou have signed the CLA already but the status is still pending? Let us recheck it.

@chick I added the getCoverage() method to TreadleTester.

@chick I added the getCoverage() method to TreadleTester.


Try reserving vector space based on source code estimate

Was curious so I hacked this together quickly. I see basically no improvement with Hyperfine and don't expect a CodSpeed improvement, but lets see.

I don't see this improvement at all locally, I'm worried it's fake!


Runtime Error when Starting

What problem did you notice?
When starting my server I get an error saying:
Steam: UP TO DATE

WARNING: The runtime version supported by this application is unavailable.

I tried changing my mono version to the latest but that just game me more errors
I plan on trying to go back to 4.6.2 to get rid of the errors.
What is the expected result?
I expect that the server should start, but it gives me an error.
What is the current result?
Mono Runtime Warning, as stated above.
How to reproduce the issue?
Follow Rocketmods Wiki Guide and type ./start.sh.
Operating System and Version:
Linux using Ubuntu 18.04
Mono version was 4.6.2
Mono version now <IP_ADDRESS>3
Output of /rocket install:
zsh: no such file of diectory /rocket
This is probably because I'm on Linux.
This probably wont help but here's the three lines that show up in the log.
[04:16:56 - 31/07/2019] Steam: App: Unturned <IP_ADDRESS>
[04:16:58 - 31/07/2019] Translations: Loaded "english" language "SDG" namespace
[04:16:58 - 31/07/2019] Translations: Loaded "testrussian" language "SDG" namespace

When starting my server I get an error saying:
Steam: UP TO DATE
WARNING: The runtime version supported by this application is unavailable.
I tried changing my mono version to the latest but that just game me more errors
I plan on trying to go back to 4.6.2 to get rid of the errors.

That is not an error, it's a warning, and you can ignore it. It's the exact same reason why #1153 was closed and tagged as invalid.

The reason I was confused was that nothing else was being outputted.
There is another issue though that I had when I changed to <IP_ADDRESS>3
I got this after the warning.

then it stopped.

If when I change to 4,6,2 it fails, I'll send another issue, but I'm going to close this thread.


fix: lifi doesn't support arbitrum nova

Description

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)

closes #
Risk

High Risk PRs Require 2 approvals

What protocols, transaction types or contract interactions might be affected by this PR?

Testing

Engineering

Operations

Screenshots (if applicable)

#6541  👈
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @gomesalexandre and the rest of your teammates on  Graphite


Remove goerli (if needed), as the network is being sunset

Do you know if ocean.py is still supported? I am trying to start as a predictor, and I cannot get "Polygon Amoy" to run as "Polygon Munbai RPCs" go offline.
In particular https://github.com/oceanprotocol/ocean.py/blob/main/READMEs/setup-remote.md is becoming hard to work by.
Where shall I start as a new predictor coming from data science? pdr-backend repo?
Kind Regards,
Gordon

To get started running a predictoor, use:
https://github.com/oceanprotocol/pdr-backend/blob/main/READMEs/predictoor.md
It doesn't use ocean.py at all. You can ignore ocean.py.

Great, thank you. I have been diving into pdr-backend since yesterday. Easy to set up.
The large number of GitHub stars on the ocean.py_ repo and some older YouTube videos misled me to start here in the ocean.py.
I'm glad to be on the right track now for predicting!
Thank you for the confirmation!


Toolbox commands do not work.

The toolbox has worked for me up until now but for some reason the feature has broken. The selected text still lights up with the moving colors as it should but nothing ever happens. No error message, just stays lit up forever until I deselect the test. This is in Intellij Idea (2023.2.3).

Hi, Ryuukae! Toolbox shan't work for some time until we're done with overhauling it. Thanks for reporting and patience!


(Suggestion) Exclusive nether portal linking

Having a config option to make nether portal linking exclusive (one overworld portal only links to one nether portal and vice versa in pairs) since the default of overworld portals within 16 nether blocks of each other linking is very annoying for servers with players that live close to each other in one general region.

Not really possible with how nether portals work. You can change their search radius in paper.yml to have finer control over their ranges, but ultimately players just need to understand how nether portals work. It's not rocket science.

Not really possible with how nether portals work. You can change their search radius in paper.yml to have finer control over their ranges, but ultimately players just need to understand how nether portals work. It's not rocket science.


🐛 BUG: astro-check fails for public variables when using astro:env

Describe the Bug
I'm not sure if it's best to report here or if this is an issue with astro:env.
I've moved my environment setup to astro:env and noticed that my Github action running astro-check started failing. An example can be found here. I would expect for astro-check to only infer the type of my defined variable, but not to require the variables to actually be set.
It's easy enough to work around by just setting the environment variables to something, but it would be nice if we didn't have to for simple CI checks like this.

Steps to Reproduce

npm init astro
add non optional envField to astro.config, e.g.

schema: {
  PUBLIC_VARIABLE: envField.string({
   context: "server",
   access: "public",
  }),
},

run npm run astro check
Error!
The following environment variables do not match the data type and/or properties defined in experimental.env.schema:

Variable PUBLIC_VARIABLE is not of type: string.

astro check implicitly runs astro sync internally (otherwise in CI environment, you wouldn't have types for content collections and stuff), the issue seems to be in the later command


Create contextManager requestType

ContextManager should have a variable set called "requestType" that gets set on specific incoming requests. For example, login would set it to "login".
This will allow us to have an authorization check on these domain functions that will only be successful under certain request types.

The code has been refactored and this issue is noonger relevant.


[DEM-586] Fix qiskit notebooks

Coverage remained the same at 100.0% when pulling 1db2db420e6c91ccbc8f6bb8f23fbf88a9bee61f on bug/DEM-586/qiskit-notebooks-exceptions into cbb806a15c0384a90c93fe1309e4ba10f9e7e0ba on dev.

Coverage remained the same at 100.0% when pulling 1db2db420e6c91ccbc8f6bb8f23fbf88a9bee61f on bug/DEM-586/qiskit-notebooks-exceptions into cbb806a15c0384a90c93fe1309e4ba10f9e7e0ba on dev.


Add some chaching mechanism since competition process is time-consuming

When the number of pipelines grow, the comparison operation takes a lot of time, especially when passing some OCR-engine as well.
I suggest that a chaching mechanism could be implemented, which will remember all processed pipelines and the all-time winner within their group. This information can be stored localy (let's say in a special ".prepCV_cache" folder) and would be loaded every time so all unnecesarry comparison operations won't happen

Solved with 'a5b6620d' commit


Gogs pull request support

The Gogs remote implementation does not currently process pull request hooks. I'm not sure what it would take to integrate full pull request support, but this would definitely be a nice addition to our current Gogs functionality.

Webhook support has been added to develop branch of gogs today.


Make a splash page with a good URL for Typeseam

Start from mockups by @jazmynlatimer in https://github.com/codeforamerica/clear-my-record/issues/75

We should create two separate splash pages: one for an official application, and one for an unofficial application.

two versions

Demo is up:
clean-slate-demo.herokuapp.com

This is now deployed at
https://clearmyrecord.codeforamerica.org


impl<T: CertificateValue> From<&Hashed<T>> for LiteValue

Motivation
This addresses https://github.com/linera-io/linera-protocol/pull/3064#discussion_r1893807182.
Proposal
impl<T: CertificateValue> From<&Hashed<T>> for LiteValue
Since we use the reference and don't consume the Hashed<T>, we still need to call LiteValue::from(&value) explicitly, or (&value).into(), but value.into() wouldn't work.
Test Plan
Minor refactoring. CI will catch regressions.
Release Plan

Nothing to do / These changes follow the usual release cycle.

Links

Original comment: https://github.com/linera-io/linera-protocol/pull/3064#discussion_r1893807182
reviewer checklist

I'm just gonna paste here what I wrote in the other thread: personally I don't like From conversions which are not obvious. It makes it difficult to track the flow - it's impossible to look for w/ IDE's "find usage/references" feature.

Should be use a small extension trait then, so that a method ´fn lite()' can be added in a later module?

An extension trait is also an option. To be honest, I don't have a strong opinion here.

Can we go for the trait? @deusz has a point here about From conversions

Or maybe we just keep the current code and close this PR...


object property name starts with 2 or more underscores, it's node.escapedText will be real plus 1 leading underscore

Bug Report
🔎 Search Terms
🕗 Version & Regression Information

This is a crash
This changed between versions 4.4.3 and 4.4.3
This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
I was unable to test this on prior versions because _______

⏯ Playground Link
💻 Code
const ts = require('typescript');

const code = `
( { __: 2 } )
`;

const root = ts.createSourceFile('', code, ScriptTarget.Latest, false, ScriptKind.TS);

console.log(
    root
    .statements[0]
    .expression
    .expression
    .properties[0]
    .name
    .escapedText
);

🙁 Actual behavior
___

The property name __ become ___. I found this bug only happen when the name starts with 2 or more underscores.
BTW: any other feature is no bug, e. g. pos, transpileModule...
🙂 Expected behavior
__

Hi, I have the same problem. How did you solve it？Thanks

My typescript version is 4.6.2

This isn't a bug; escapedText means the version of the name that's safe to use in a context where internal names start with _. You usually want .getText() or .getFullText() instead depending on the kind of node


GATE-5639/GIN-156: add custom certificate setting to teams account re…

Add new teams account field: custom_certificate
Waiting on release of https://github.com/cloudflare/cloudflare-go/pull/1811 (merged but not yet released)

looks like we're failing in the acceptance test suite here
=== RUN   TestAccCloudflareTeamsAccounts_ConfigurationBasic
    resource_cloudflare_teams_accounts_test.go:23: Step 1/1 error: Error running apply: exit status 1

        Error: error updating Teams Account configuration for account "f037e56e89293a057740de681ac9abbe": incomplete custom certificate settings

          with cloudflare_teams_account.dwadlgfept,
          on terraform_plugin_test.tf line 12, in resource "cloudflare_teams_account" "dwadlgfept":
          12: resource "cloudflare_teams_account" "dwadlgfept" {

--- FAIL: TestAccCloudflareTeamsAccounts_ConfigurationBasic (5.32s)
FAIL
FAIL	github.com/cloudflare/terraform-provider-cloudflare/internal/sdkv2provider	6.365s
FAIL
make: *** [testacc] Error 1

after fixing the id schema to be Computed and Optional, tests are now passing
TF_ACC=1 go test ./internal/sdkv2provider -v -run "^TestAccCloudflareTeamsAccounts_" -count 1 -timeout 120m -parallel 1
=== RUN   TestAccCloudflareTeamsAccounts_ConfigurationBasic
--- PASS: TestAccCloudflareTeamsAccounts_ConfigurationBasic (11.64s)
PASS
ok  	github.com/cloudflare/terraform-provider-cloudflare/internal/sdkv2provider	12.608s


How to redirect router when User logout?

I want to redirect router when user logout.
Example I have
Currently I stay at
// admin/event
when click logout it will go to
// '/'

How you handle the logout code. If you are using Meteor.logout you can do this:
Meteor.logout(function() {
  FlowRouter.go('/');
});

I use ian:accounts-ui-bootstrap-3.

Work fine. thanks :+1:

Here's the second way of doing it.
FlowRouter.route('/logout', {
  name: 'logout',
  action() {
    Accounts.logout();
    FlowRouter.go('/');
  }
});

@ldong the URL in the browser address bar doesn't change if you use FlowRouter.go('/'), however, FlowRouter.redirect('/') works well.


How does s_dma_desc get advanced?

cur_buffer seems to be updated, but, i2s_fill_buf seems not to use the buffer info.
    SET_PERI_REG_BITS(I2S_IN_LINK_REG(0), I2S_INLINK_ADDR, ((uint32_t) &s_dma_desc), I2S_INLINK_ADDR_S);

Is this to be expected?  Is there magic in the I2S subsystem to somehow select the right descriptor?

I am also stuck at this point. It seems like that they are using a ping pong buffer, but the parameter index is not used in i2s_fill_buf
I am using mt9v034 (which is a mono cmos sensor) and need to modify the dma size as well as the line_filter function.

I'm trying to do this just to read data coming from the pins at a high rate, but I can't even get the IRQ to be called once.  This particular question though likely unrelated to my issue was the only one that really left me going ????

Yes, it's probably a but. Thanks for pointing this out.
@cnlohr : if the interrupt doesn't fire it likely means that something is wrong with your input HSYNC & HREF & clock signals. Can you capture a scope trace of these signals?

Well, specifically, I've disabled the camera portion - but I'm still driving the clock.  Perhaps I should go, re-enable the camera interface and and drive the HYSNC and HREF signals manually and see if the interrupts fire then.

If I2S configuration has camera mode enable bit set, you need to make sure REF/SYNC signals are high. You can route them to a fixed high level using GPIO mux to avoid wasting a pin.

I'm curious how do you do that?  I saw you doing this on this line:
gpio_matrix_in(0x38, I2S0I_H_SYNC_IDX, false);

Is there any map that shows all the functionality of the non-regular-gpio-pins in the matrix?

This is mentioned in section 4.2.2 of the ESP32 Technical reference manual ("Peripheral Input via GPIO Matrix"), see Figure 7.
0x30 is the index which provides constant 0 input, 0x38 is the index which provides constant 1 input.

Got it working!  40 MSPS, so it's 1/2 the speed of the ESP8266's I2S bus from what I can tell... unless there's some clocking bit I need to set/reset... BUT... it can do that all 16-bits at a time, so the data pipe is pretty wide!!!!
The secret sauce was in the sync controls.
    gpio_matrix_in(0x38,    I2S0I_V_SYNC_IDX, false);
    gpio_matrix_in(0x38, 	I2S0I_H_SYNC_IDX, false);
    gpio_matrix_in(0x38,    I2S0I_H_ENABLE_IDX, false);

https://gist.github.com/cnlohr/2b9f8a26e891aa1a118f634cff9d04fe

Errr.... I closed it because I solved a different problem.  Should I re-open to address first problem?

Yep, let this be a reminder for me to fix the descriptors.

Man... what I would give to get access to the magical tome of registers, instead of spending hundreds of hours blundering around in the dark till I find all the lightswitches I need to turn on. :-p.  Anyway, it would be good for all of the references to be as solid as possible so errors don't get propagated along.

Actually there is no magical tome. What comments you see in header files are pretty much the same that we have. It takes time to describe everything and translate into English.

It takes time to describe everything and translate into English.

Can we have a Kickstarter for doing that for the ESP8266? :)

@cranphin I can assure you, it's not one of the problems which can be easily solved just by throwing money at it :)
We'll do this for the ESP32 first, and then see if we have some time left for the ESP8266, before the next chip comes out.

After playing with the ESP32... I don't know what next chip there could be.  The '32 already smashes just about every competitor into the dust.

ESP64 ofcourse :)