Set write_allocate to false

Not sure why this is set to true by default.
As far as I can see there is no aliasing or anything that would explain why you would have to count the left-hand-side twice (loading and storing?), it's only stored to.

My understanding is mainly based on https://blogs.fau.de/hager/archives/8263.

I can't say I've read it, but they also seem to use that default?

[correction 2019-03-18: spurious factor 8 removed]
Maybe that's relevant?
Copy = 2 memops/iter
Scale = 2 memops/iter
Triad = 3 memops/iter

Citing from the resource I linked:

Hence, for every store without a previous read to the same cache line we have to count an additional read. The bandwidth numbers  that the benchmark code above assumes are based on the minimum data traffic of 16 bytes per iteration for Copy and Scale, and 24 bytes per iteration for Add and Triad. If the write-allocate applies, the correct numbers are 24 and 32 bytes, respectively, and the output of the benchmark must be corrected by a factor of 1.5 (Copy/Scale) or 1.33 (Add/Triad).  I want to know how many bytes the memory interface can transfer per second, and if that means I have to account for write-allocates, so be it.

We all agree that there is just one store happening. The question is whether - to perform the store - a load has to happen first. Note that we write to an array that we have not read before (on the r.h.s. of each of the equations). My take is that it's architecture dependent (correct me if I'm wrong) and that, if you could, you would try to find out by actually measuring (using perf or similar) how many bytes have been transferred. The question ist what the best default is. Looking at the quote above and the fact that I roughly know the mem bandwidth of my machine which is only reasonably approximated with write_allocate=true I chose the default true.

@vchuravy Please see the short discussion above. Do you have any deeper knowledge here that can help us settle this?

The resources Carsten linked make sense to me. Also see https://github.com/RRZE-HPC/likwid/issues/126#issuecomment-341468983


feat(z-index): Lowering values not to conflict with webtools, fixing templates - OEL-1767

…

https://getbootstrap.com/docs/5.0/layout/z-index/
Based on this, I think we may not have conflicts and it's good to be merged.


[bug fix][issue #627] pass the correct method arg name down to aiconfig save

[bug fix][issue #627] pass the correct method arg name down to aiconfig save
Fix the argument name: "path" -> "config_filepath".
Also add a couple of related path fixes to make
other endpoints more robust.
Test:
Send requests to /load_model_parser_module, /load, and /save
with valid and invalid paths, and with incorrectly-named arguments.
Also make sure /load runs with no arguments.

with valid and invalid paths, and with incorrectly-named arguments.

Can you add a visual for the testplan? A video or picture would be really helpful to visualize this change


Env vars in Windows that contain paths should use backslashes

See this rabbitmq-users discussion.

This will be fixed by rabbitmq/rabbitmq-server#1963


Document the process for running pipeline tests

@jswelling completed and ready for review:
https://docs.google.com/document/d/1a75AD3gHrJxFdC7wwnucb6UbSKcVWjyW4HR49II-ARI/edit?usp=sharing


Rework README

Fixed by https://github.com/alexarchambault/argonaut-shapeless/commit/2772092740b6986fa61a78bee80b2da296110853.


[#2385] feat(core): Add the Relational Garbage Collector

What changes were proposed in this pull request?

Add the JDBC Backend Garbage Collector

Why are the changes needed?
Fix: #2385
Does this PR introduce any user-facing change?
N/A
How was this patch tested?
UT

sorry for the late feature finish, can you help to review this? Thanks a lot. @yuqi1129 @jerryshao

@YxAc
Please update your code if you have free time.

Thanks @YxAc for your contribution, merging to main.


Please add example for multiple builds (for different platforms)

I added following to the config (of this repository), but the result is Since your runtime task is configured to generate images for multiple platforms, you must specify a targetPlatform for your jpackage task..
    targetPlatform("lin") {
        jdkHome = jdkDownload("https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_linux_hotspot_15.0.2_7.tar.gz")
    }

    targetPlatform("mac") {
        jdkHome = jdkDownload("https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_mac_hotspot_15.0.2_7.tar.gz") {
            downloadDir = "$buildDir/myMac"
            archiveName = "my-mac-jdk"
            archiveExtension = "tar.gz"
            pathToHome = "jdk-15.0.2+7/Contents/Home"
            overwrite = true
        }
    }

    targetPlatform("win") {
        jdkHome = jdkDownload("https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7/OpenJDK15U-jdk_x64_windows_hotspot_15.0.2_7.zip")
    }

Yes, including such an example is a good idea. Thanks!
The error message tells you that you also need to add something like this:
jpackage {
    targetPlatformName = "mac"
    ....
}

I added your code to build.gradle.

Thank you for the quick action taken.
Think, I do not get "multiple". I thought, I could generate three images by one call. It seems that I can create one image for another runtime ("targetPlatformName"). I also think that currentOS should be the targetPlatformName, because if it is packed for Mac OS X. - Do I have a wrong assumption?

On your computer you can generate three images but only one installer.
Images are created by the runtime task (which uses jlink) in the build/image directory, while the installer is created by the jpackage task in the build/jpackage directory.
In contrast to jlink, jpackage is not able to produce installers for other platforms. That's why you need to specify the targetPlatformName in the jpackage block. To create an installer for Windows you need to run jpackage on a Windows platform, to create an installer for Linux you need to run jpackage on a Linux platform, and so on.
To create images and installers for my GitHub projects I don't usually use the targetPlatform method. Instead, I configure GitHub actions such as here to execute the build on different platforms and to upload the resulting artifacts.

@siordache Thank you for your explanation. Then I'll stick with the "traditional" method.
In case you are going to sign your binaries, here a link to our workflow: https://github.com/JabRef/jabref/blob/bb29baeb458e05ba3bf46d24105fbd3f8e097524/.github/workflows/deployment.yml#L98. With that, we do not hit https://bugs.openjdk.java.net/browse/JDK-8251892.

jpackage {
targetPlatformName = "mac"
}

This throws me the error Could not set unknown property 'targetPlatformName' for task ':jpackage' of type org.beryx.jlink.JPackageTask..
Java 16.0.1, Gradle 7.0.2, JLink plugin 2.24.0.

You probably forgot to put it inside the jlink block:
jlink {
    jpackage {
        targetPlatformName = "mac"
    }
}


create_model support generics model

Change Summary
create_model support generics model
Related issue number
fix #3945
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[x] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

please review

but I wonder if this could have any unintended side effects?

I am not sure. but we need a rebase here to properly handle __cls_kwargs__ and kwds
please update

I try to extract code from types.new_class to avoid using lambda function
this is source code in python3.8 official library
def new_class(name, bases=(), kwds=None, exec_body=None):
    resolved_bases = resolve_bases(bases)
    meta, ns, kwds = prepare_class(name, resolved_bases, kwds)
    if exec_body is not None:
        exec_body(ns)
    if resolved_bases is not bases:
        ns['__orig_bases__'] = bases
    return meta(name, resolved_bases, ns, **kwds)

I'm alse not sure types.new_class could have any unintended side effects in this project.But this is a official function to create new class, and maybe this is good alternative for type。
@samuelcolvin @hramezani

Thanks @hot123s for the explanaitons.
Please consider you need to rebase your patch first.

@hramezani I have rebased my branch, and compatible with __cls_kwargs__, and add corresponding test case.Please review it.

Thanks so much.

See #4432 related workaround which I think is required due to this PR.


add .groupby (closes #40)

This implementation is straightforward on top of .group but has the downside that by is called 2 times per element.

follow up PR: #42


Undefined original price

Got a notification of a game with an undefined original price - perhaps this game had no original USD price?

Looks like this deal was expressed only in GBP:
{
  "success": true,
  "data": {
    "770498": {
      "id": 770498,
      "title": "Den:The Forgotten",
      "kind": "game",
      "tags": [
        "3d",
        "first-person",
        "horror",
        "zombies",
        "shooter"
      ],
      "description": "First-Person Zombie Shooter",
      "rating": 1,
      "copyright": "fakewolfgamestudio",
      "until":<PHONE_NUMBER>,
      "type": "free",
      "urls": {
        "org": "https://fakewolfgamestudio.itch.io/denthe-forgotten",
        "default": "https://fakewolfgamestudio.itch.io/denthe-forgotten",
        "browser": "https://fakewolfgamestudio.itch.io/denthe-forgotten",
        "client": null
      },
      "store": "itch",
      "platforms": [
        "windows"
      ],
      "flags": 0,
      "notice": "",
      "price": {
        "gbp": 0
      },
      "org_price": {
        "gbp": 4.99
      },
      "thumbnail": {
        "org": "https://img.itch.zone/aW1nLzQ2ODIxNjEuanBn/original/LdEWFs.jpg",
        "blank": "https://img.itch.zone/aW1nLzQ2ODIxNjEuanBn/original/LdEWFs.jpg",
        "full": "https://cdn.discordapp.com/attachments/1148233153622839306/1209634154677928019/freestuff-thumbnail-RIJ2ZQf.png?ex=65e7a298&is=65d52d98&hm=2a957e599bd94b346b0bc3c3f03565e73bfbca6a54b49a5cbd9b9259ab6358e4&",
        "tags": "https://cdn.discordapp.com/attachments/1148233153622839306/1209634154677928019/freestuff-thumbnail-RIJ2ZQf.png?ex=65e7a298&is=65d52d98&hm=2a957e599bd94b346b0bc3c3f03565e73bfbca6a54b49a5cbd9b9259ab6358e4&"
      },
      "store_meta": {
        "steam_subids": ""
      }
    }
  }
}


Add embeddedIndexPrefix in addition to embeddedPrefix

Describe the feature
Currently, GORM supports embedding structs, which prepends a prefix to all COLUMN names.
I'd like to be able to embed a struct and also utilize its indices.
Motivation
I'd like to also create multiple indices from the embedded struct, for each table, but keep all column names identical.

Any update on this?

end up with https://github.com/go-gorm/gorm/pull/5269


Reminders integration

A previous PR (discontinued): https://github.com/BasedHardware/Friend/pull/230
Correct, not every single action item is worth a calendar or something.
Part 1
Prepare a few keyword phrases
"Hey Friend" Remind me to do X at y time.
During the transcript processing every 30 seconds, it should find if there's this keyword phrase
And, ask GPT to analyze the transcript, and structure the key points, "time" "date" "title", "description" optional.
With that, check which reminders platform the user has configured.
Part 2
During memory creation, it should extract a list of events to be scheduled generateTitleAndSummaryForMemory and those should be created
Part 3
Testability of feature.
We create them automatically, or we create drafts of them, so the user includes those events manually to avoid clutter.
It should be easy from the code to change between these 2 options.
Platforms to be configured.

Google Calendar (main)
Apple Reminders

Screens:
So settings should have 2 things, an authorize "Friend" to use calendar and reminders, and one to select which of those to use.
Additionally on onboarding, it should have the option to authorize each of the platforms, or simply skip.
Finally, the memory object should have a events created list, which contain all that data above + platform used, and that should be displayed in the memory_detail page.
NOTE: ideally no backend need, but if so, happy to help.

I am looking into this. Which platforms do we want to support? Some that come to mind

Apple Reminders
Google Calendar
Notion
Obsidian

The assistant is incentivized to create action points from the conversation. I don't think every single action point should be a reminder it would get too cluttered and no one would use the feature. So what constitutes a reminder and what doesn't? The other approach is that the assistant identifies reminders, which is potentially a subset of action points, and asks the user for confirmation to write to whichever reminders app has been selected as default.

A previous PR (discontinued): https://github.com/BasedHardware/Friend/pull/230
Correct, not every single action item is worth a calendar or something.
Let's do the following:
Prepare a few keyword phrases
"Hey Friend" Remind me to do X at y time.
During the transcript processing every 30 seconds, it should find if there's this keyword phrase
And, ask GPT to analyze the transcript, and structure the key points, "time" "date" "title", "description" optional.
With that, check which reminders platform the user has configured.
Platforms to be configured.

Google Calendar (main)
Apple Reminders

Screens:

So settings should have 2 things, an authorize "Friend" to use calendar and reminders, and one to select which of those to use.

Additionally on onboarding, it should have the option to authorize each of the platforms, or simply skip.

Finally, the memory object should have a events created list, which contain all that data above + platform used, and that should be displayed in the memory_detail page.

NOTE: ideally no backend need, but if so, happy to help.

Hi, I would like to work on this. Can you please assign this to me?

Assigning to @diegoasua for the next 2 days

#307 WIP

Hi @josancamon19, have worked on a similar task before. Can I take this?

Assigning to @antonio-pedro99 please create a Draft PR when you get started.
Join discord and say Hi :)

Assigning to @antonio-pedro99 please create a Draft PR when you get started. Join discord and say Hi :)

I will be there

Hi @antonio-pedro99 if you could create a Draft PR it'll be great so we can see progress, otherwise I will have to unassign the task, as I don't see progress, thanks!

Hi @antonio-pedro99 if you could create a Draft PR it'll be great so we can see progress, otherwise I will have to unassign the task, as I don't see progress, thanks!

I will send a draft PR by tonight

No relevant progress made. Unassigning.

No relevant progress made. Unassigning.

Did you know that we have jobs? 😁 and we work on open source on our free time?
Maybe next, you should include estimated time to finish the issue. This will help us pick issues we will have enough time to work on :).

Yes, I understand, but the 2 commits you made, were only after I asked for an update, and you had like 4 days before that.
You should've shared some progress within the first 2 days of the task.

Part 2 and 3 ready in development, comments on part 1 as not sure if that's the right use case.

Next part of this should be integrate directly with Google calendar.


using AMFM as vocoder for speech synthesis

I'm thinking of using AMFM_decompy as vocoder for parametric speech synthesis.
It requires a high-quality analysis/synthesis (which I believe AMFM_decompy can do it) and small number of parameters. I realize that H (3 dimension matrix) keeps necessary parameters for analysis/synthesis process. With 25 harmonics, there are 25 x 3 parameters at each sampling time (not frame time). Is it right? Can we have several frames and each frame has 25 x 3 parameters??
Thanks for spending your time on my issue.^^

Hi tuanad121, sorry for the delay, I was away from my hometown for some days.
Yes, you are right, for each sampling time, each harmonic will have 3 parameters (amplitude, phase and instantaneous frequency). Like you've said, 25 x 3 in total.
And once that you resynthesizes the signal, you can measure its quality using the SRER parameter and compare the results with other methods. Just notice that this is just a numeric evaluation. Eventually a perceptual test with real users would give different results, since that 'speech quality' is a subjective judgement that varies from person to person.
Actually, testing the QHM method in a vocoder was one of my "suggestions for future works" from my unpublished Master thesis. So it would be interesting to see your results. I just can't guarantee that they will be better than the ones from other vocoder algorithms, but nevertheless, this is how science works X).
I would advice you take a look at the recent papers from the QHM algorithm main authors (Y. Pantazis and Y. Stylianou). Since that I left the in academia for a while, I have lost access to the IEEE database, so I haven't read their most recent papers about the subject (2015 onwards). Eventually you could find something in them that would you help in your project.

Thanks for your kind reply. ^^ I appreciate it

Ok, thanks. I'll close this thread since that the question seems to have been answered.


Added version 2 of filters and more. Sorted.

As they appear here: https://github.com/obsproject/obs-studio/blob/dde4d57d726ed6d9e244ffbac093d8ef54e29f44/plugins/obs-filters/obs-filters.c?ts=4

Thanks!


Support for ingress?

Any plans to support an ingress?
Configuration block could look like:
ingress:
  enabled: true
  annotations:
    traefik.ingress.kubernetes.io/router.entrypoints: websecure
    traefik.ingress.kubernetes.io/router.tls: "true"
    traefik.ingress.kubernetes.io/router.tls.certresolver: le
  hosts:
    - host: kubetail.mydomain.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - hosts:
        - kubetail.mydomain.com

Good idea! Will do.

This is live in kubetail chart v0.2.0. Thanks again for your PR!

Dohhhh 🤦🏻
Error: UPGRADE FAILED: template: kubetail/templates/ingress.yaml:22:31: executing "kubetail/templates/ingress.yaml" at <.Values.service.name>: nil pointer evaluating interface {}.service

What's the helm command you're using and what is your values.yaml file? I just tried it with v0.2.0 and it worked fine with the default options:
$ helm upgrade kubetail kubetail/kubetail --namespace kubetail
Release "kubetail" has been upgraded. Happy Helming!
...

Fixed in https://github.com/kubetail-org/helm/pull/5


I cant build

I get this: "src/SPIRenderer.cpp:82:3: error: 'timer_spinlock_give' was not declared in this scope"
Where is timer_spinlock_give?
Thanks
Giuliano

Ok, so looks like that function call has been removed in the latest version of the idf.
https://esp32.com/viewtopic.php?t=29726
I've pinned the version in platform io to an older version. Reading the forum thread above a proper fix looks pretty complicated...


TEST ONLY: update-deps.sh and update-codegen.sh

Run ./hack/update-deps.sh followed by hack/update-codegen.sh
No files changed....
All tests passed
This is a test - no need to merge.

/hold

test completed


[AVM Module Issue]: Feature request: ACR integration

Check for previous/existing GitHub issues

[x] I have checked for previous/existing GitHub issues

Issue Type?
Feature Request
(Optional) Module Version
No response
(Optional) Correlation Id
No response
Description
To facilitate integration with Azure Container Registry, it would be nice for this module to either setup the necessary role(s), or expose the kubelet_identity in case you are not passing a UserAssigned Managed Identity.
Sample code below to setup the role assignment referencing the  azurerm_kubernetes_cluster resource
resource "azurerm_role_assignment" "acr_pull" {
  principal_id                                   = azurerm_kubernetes_cluster.aks.kubelet_identity[0].object_id
  role_definition_name                    = "AcrPull"
  scope                                            = data.azurerm_container_registry.acr.id
  skip_service_principal_aad_check = true
}

Thanks @johnknutsonhc for opening this issue to us! A personal thought, I think maybe this role assignment should be managed by ACR module, I've already checked the ACR module, you can create the role assignment there


How to use an embedded sqlite DB ?

How to use an existing database that already contains data?

If you already have an existing database and want to migrate to moor, it's basically a three step process. I've written down some more detailed instructions with examples:

You would have to write classes that match your existing table structure. For instance, if you have previously created some table like this:

CREATE TABLE users(
  id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR NOT NULL,
  picture_url VARCHAR,
);
CREATE TABLE friendships(
  first INTEGER NOT NULL REFERENCES users(id),
  second INTEGER NOT NULL REFERENCES users(id),
  created_at INTEGER NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY(first, second),
);

you could model them in moor with:
class Users extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get name => text()();
  TextColumn get profilePicture => text().named('picture_url').nullable()();
}
class Friendships extends Table {
  IntColumn get first => integer().customConstraint('NOT NULL REFERENCES users(id)')();
  IntColumn get second => integer().customConstraint('NOT NULL REFERENCES users(id)')();
  DateTimeColumn get createdAt => dateTime().withDefault(currentDateAndTime)();
  @override
  Set<Column> get primaryKey => {first, second};
}

This is the most complicated step. Moor supports most sql features like primary keys, nullability etc, but some features have to be implemented using custom column or table constraints. You can achieve a high level of customization by using named and customConstraint
for columns and tableName and customConstraints for tables.
2. Create your database class. If you have used sqflite before and did this:
var databasesPath = await getDatabasesPath();
String path = join(databasesPath, 'demo.db');
Database database = await openDatabase(path, version: 12,
    onCreate: (Database db, int version) async {
  await db.execute('CREATE TABLE users ...');
});

You can use moor like this:
@UseMoor(tables: [Todos, Categories])
class MyDatabase extends _$MyDatabase {
  // we tell the database where to store the data with this constructor
  MyDatabase() : super(FlutterQueryExecutor.inDatabaseFolder(path: 'demo.db'));
  @override
  int get schemaVersion => 12;
}

More information about writing database classes can be found in the documentation. If you have written migrations for the existing database, you might want to also implement them in moor by overriding migration.
3. Convert your queries. This can be done step-by-step, as moor supports custom queries. So all your previous queries with database.insert or database.select can be written in moor by calling customSelect or customUpdate on your database class. More details on queries are available in the docs.
Let me know if you have any questions! If you need help at any step or more specific instructions, also just let me know.

Thanks for your response. As your project uses sqflite, I finally followed the tutorial to use an existing database : , since I use a database created with another tool

Ah, I see! If you're following the "Optimizing for performance" section from that library, you might want to do this:
@UseMoor(tables: [Todos, Categories])
class MyDatabase extends _$MyDatabase {
  // we tell the database where to store the data with this constructor
  MyDatabase(String path) : super(FlutterQueryExecutor(path: path));
  @override
  int get schemaVersion => 12;
}

Then, you can follow that guide when opening the database:
var databasesPath = await getDatabasesPath();
var path = join(databasesPath, "demo_asset_example.db");

// Check if the database exists
var exists = await databaseExists(path);

if (!exists) {
  // Should happen only the first time you launch your application
  print("Creating new copy from asset");

  // Make sure the parent directory exists
  try {
    await Directory(dirname(path)).create(recursive: true);
  } catch (_) {}

  // Copy from asset
  ByteData data = await rootBundle.load(join("assets", "example.db"));
  List<int> bytes =
  data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);

  // Write and flush the bytes written
  await File(path).writeAsBytes(bytes, flush: true);

} else {
  print("Opening existing database");
}
// open the database
db = MyDatabase(path);

Closing this issue now as the question has been answered. @ymoussaba Feel free to reopen or reply if you have any more questions

I hope u will update documentation about embedding existing database assets into project.
Besides, I prefer using only moor things to do it.

I know that this is a very long shot, but is there any way to use a similar approach for moor_web?

Hi I have a question from the code above
where exactly I should do that directory work
I mean before opening DB you check and use some predefined functions that work where should happen and how? I get really confused


Add Vietnam Military Medical University

Institution/School Name
{Vietnam Military Medical University}
Instiution/School Website
{http://vmmu.edu.vn/}
Email Users
<EMAIL_ADDRESS>Please place an x between the square brackets if yes

[x ] Students
[ ] Academic/Teaching Staff
[ ] Other/Support Staff
[ ] Alumni

Education Levels
Please place an x between the square brackets if yes

[ ] Post-graduate research
[x ] Graduate School
[ ] College (University) or Undergraduate School or equivalent
[ ] Community College or equivalent
[ ] High School or equivalent
[ ] Elementary School or equivalent

@QuanAnhDung-96 vmmu.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.


Multiscreen enhancements

Hi Mika. Here are some changes to allow the primary Mame monitor to be picked. The selection is either 'Highest Resolution' or 'Windows Primary'.  This is handy for where there are high DPI monitors or you prefer the Primary monitor to host Mame.

Hey @andyvans great thanks! I've been so busy with work and rl that I totally forgot to make a release for v3 - I guess this could go in too, I just have to fix up the installer...

You'll note I've been too polite to mention it 😉

You'll note I've been too polite to mention it 😉

Hehe noted. I hang my head in shame...

@andyvans so the dropdown only ever has those choices (highest res or primary) or does it get the list of screen? Just trying to understand how it works...

@mika76 It only has those two choices. It doesn't detect and list monitors that you may have. The purpose is to choose the screen on which MAME with run on.
If streaming to other monitors is enabled then this decides the source of the stream.  On some games the streamed/cloned screens can have visual defects so choosing your primary or highest resolution can reduce the amount it bothers you (depending on which one you mainly look at)

Merged, updated, and all sorted now. 😌
btw come join us on https://gitter.im/mika76/mamesaver @andyvans ...


Grav 1.6.18 is an incomplete fix for PHP 7.4 issues

Hello,
After updating my arch linux server to PHP 7.4 today, Grav 1.6.17 broke.  Found a new release of Grav, 1.6.18, which contains the PHP 7.4 fix, and installed it (https://github.com/getgrav/grav/commit/238ba9b9b40932758911c9b8627ef666688d0607).
Grav is still complaining of an error in Pages.php:
Whoops \ Exception \ ErrorException (E_NOTICE)
Trying to access array offset on value of type null
The indicated code is as follows:
/var/www/<redacted>/public_html/grav/system/src/Grav/Common/Page/Pages.php

                    case 'publish_date':
                        $list[$key] = $child->publishDate();
                        $sort_flags = SORT_REGULAR;
                        break;
                    case 'unpublish_date':
                        $list[$key] = $child->unpublishDate();
                        $sort_flags = SORT_REGULAR;
                        break;
                    case 'slug':
                        $list[$key] = $child->slug();
                        break;
                    case 'basename':
                        $list[$key] = basename($key);
                        break;
                    case 'folder':
                        $list[$key] = $child->folder();
                        break;
                    case (isset($header_query[0]) && is_string($header_query[0])):
                        $child_header = new Header((array)$child->header());
                        $header_value = $child_header->get($header_query[0]);
                        if (is_array($header_value)) {
                            $list[$key] = implode(',',$header_value);
                        } elseif ($header_value) {
                            $list[$key] = $header_value;
                        } else {
                            $list[$key] = $header_default ?: $key;
                        }
                        $sort_flags = $sort_flags ?: SORT_REGULAR;
                        break;
                    case 'manual':
                    case 'default':
                    default:
                        $list[$key] = $key;
                        $sort_flags = $sort_flags ?: SORT_REGULAR;
                }
            }

            if (!$sort_flags) {
                $sort_flags = SORT_NATURAL | SORT_FLAG_CASE;
            }

Arguments

    "Trying to access array offset on value of type null"

The highlighted line is 1311 in Pages.php: https://github.com/getgrav/grav/blob/238ba9b9b40932758911c9b8627ef666688d0607/system/src/Grav/Common/Page/Pages.php#L1311
As you can see, my stacktrace does indeed include the PHP 7.4 fix on 1309, so it appears that 1.6.18 is at best a partial fix.

Ah I guess I didn’t have a test case here I was actually using that filter type. Will require a similar check.

Check Grav 1.7 where I've actually got rid of the array.

@mahagr Wrong place to ask, I know, but is there a way to get gpm selfupgrade to install 1.7 over my 1.6.18 install?

In your user/config/system.yaml add/change the gpm.releases option as follows:
gpm:
  releases: testing

Then do a force self upgrade:
bin/gpm -f selfupgrade

Please reopen this issue, the fix is still incomplete
Running a version of Grav at commit https://github.com/getgrav/grav/commit/41d31cb5ea9d26e1fe85e353d469316cbe88e2f8 results in a new error for me, which seems related because it's still referencing Pages.php:
Whoops \ Exception \ ErrorException (E_NOTICE)
Undefined offset: 0
Code highlighted is Line 1313 in Pages.php:
https://github.com/getgrav/grav/blob/41d31cb5ea9d26e1fe85e353d469316cbe88e2f8/system/src/Grav/Common/Page/Pages.php#L1313
Prior to any of this, PHP 7.3/Grav 1.6.17 was working fine.

I'll look at this tomorrow.  Clearly PHP 7.4 is much stricter about the case statement.
Can you try replacing the entire 'for' loop with this:
foreach ($pages as $key => $info) {
            $child = $this->instances[$key] ?? null;
            if (!$child) {
                throw new \RuntimeException("Page does not exist: {$key}");
            }

            switch ($order_by) {
                case 'title':
                    $list[$key] = $child->title();
                    break;
                case 'date':
                    $list[$key] = $child->date();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'modified':
                    $list[$key] = $child->modified();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'publish_date':
                    $list[$key] = $child->publishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'unpublish_date':
                    $list[$key] = $child->unpublishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'slug':
                    $list[$key] = $child->slug();
                    break;
                case 'basename':
                    $list[$key] = basename($key);
                    break;
                case 'folder':
                    $list[$key] = $child->folder();
                    break;
                case 'manual':
                case 'default':
                default:
                    if (isset($header_query[0]) && is_string($header_query[0])) {
                        $child_header = new Header((array)$child->header());
                        $header_value = $child_header->get($header_query[0]);
                        if (is_array($header_value)) {
                            $list[$key] = implode(',', $header_value);
                        } elseif ($header_value) {
                            $list[$key] = $header_value;
                        } else {
                            $list[$key] = $header_default ?: $key;
                        }
                        $sort_flags = $sort_flags ?: SORT_REGULAR;
                    } else {
                        $list[$key] = $key;
                        $sort_flags = $sort_flags ?: SORT_REGULAR;
                    }

            }
        }

Sorry I was unable to test the previous comment.  However, upgrading to 1.6.19 definitely fixed it on my server.  All seems to work fine now.  Thanks.

No worries, i actually changed it again to bring it more inline with 1.7 branch


Secrets are not mounted in main container, when using vault-agent-init

Preflight Checklist

[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.
[X] I am not looking for support or already pursued the available support channels without success.
[X] I agree to follow the Code of Conduct.

Operator Version
1.21.2
Installation Type
Official Helm chart
Bank-Vaults Version
No response
Kubernetes Version
1.27.2
Kubernetes Distribution/Provisioner
Scaleway
Expected Behavior
The main container has secrets available at e.g. /vault/secrets
Actual Behavior
No volumeMount for /vault/secrets is available in the main containers (my application, see config example below).
Steps To Reproduce
This does not work:
apiVersion: v1
kind: ConfigMap
metadata:
  name: fpush-config-apns-vault-agent
  namespace: fpush
  labels:
    app.kubernetes.io/name: fpush
    my-app.kubernetes.io/name: fpush
data:
  config.hcl: |
    vault {
    }
    auto_auth {
      method "kubernetes" {
        mount_path = "auth/kubernetes"
        config = {
          role = "fpush"
        }
      }
      sink "file" {
        config = {
          path = "/vault/.vault-token"
        }
      }
    }
    template {
    contents = <<EOH
    {{- with secret "/secret/applications/production/fpush_apns" -}}
    {{ base64Decode .Data.data.certFile }}
    {{- end }}
    EOH
      destination = "/vault/secrets/apns_certificates.p12"
      exec {
        command = ["true"]
      }
    }
    template {
    contents = <<EOH
    {{- with secret "/secret/applications/production/ejabberd_listener_fpush" }}
    {
    "component": {
        "componentHostname": "fpush-apns.example.net",
        "componentKey": "{{ .Data.data.password_apns }}",
        "serverHostname": "ejabberd.ejabberd.svc.cluster.local",
        "serverPort": 5347
    },
    {{ end }}
    {{- with secret "/secret/applications/production/fpush_apns" }}
    "pushModules": {
        "iOS": {
            "type": "apple",
            "is_default_module": true,
            "apns": {
                "certFilePath": "/vault/secrets/apns_certificates.p12",
                "certPassword": "{{ .Data.data.certPassword }}",
                "environment": "{{ .Data.data.environment }}",
                "topic": "{{ .Data.data.topic }}"
            },
            "ratelimit": {
                "ratelimitTime": "20s",
                "hardRatelimitTime": "20s",
                "ratelimitCleanupInterval": "300s",
                "enabled": false
            }
        }
    },
    "timeout": {
        "xmppconnectionError": "20s"
    }
    }
    {{ end }}
    EOH
      destination = "/vault/secrets/settings.json"
      exec {
        command = ["true "]
      }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
  namespace: fpush
  labels:
    app: busybox
spec:
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
        sidecar.istio.io/inject: "true"
      annotations:
        traffic.sidecar.istio.io/excludeOutboundPorts: "8200"
        vault.security.banzaicloud.io/vault-addr: "https://vault.vault:8200"
        vault.security.banzaicloud.io/vault-role: "fpush"
        vault.security.banzaicloud.io/vault-skip-verify: "false"
        vault.security.banzaicloud.io/vault-tls-secret: "vault-tls"
        vault.security.banzaicloud.io/vault-path: "kubernetes"
        vault.security.banzaicloud.io/vault-agent: "true"
        vault.security.banzaicloud.io/vault-agent-init: "true"
        vault.security.banzaicloud.io/vault-agent-configmap: "fpush-config-apns-vault-agent"
        vault.security.banzaicloud.io/vault-agent-once: "true"
    spec:
      securityContext:
        fsGroup: 1000
      serviceAccountName: default
      containers:
      - name: busybox
        image: busybox
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsUser: 65532
          runAsGroup: 1000
          runAsNonRoot: true
          privileged: false
          capabilities:
            drop: [ALL]
        args: ["/bin/sh", "-c", "sleep 120"]

However, when I trick the environment by also using vault-env to inject a pseudo environment variable, a volumeMount /vault is created which makes the secrets available from the vault-agent init container.
apiVersion: v1
kind: ConfigMap
metadata:
  name: fpush-config-apns-vault-agent
  namespace: fpush
  labels:
    app.kubernetes.io/name: fpush
    my-app.kubernetes.io/name: fpush
data:
  config.hcl: |
    vault {
    }
    auto_auth {
      method "kubernetes" {
        mount_path = "auth/kubernetes"
        config = {
          role = "fpush"
        }
      }
      sink "file" {
        config = {
          path = "/vault/.vault-token"
        }
      }
    }
    template {
    contents = <<EOH
    {{- with secret "/secret/applications/production/fpush_apns" -}}
    {{ base64Decode .Data.data.certFile }}
    {{- end }}
    EOH
      destination = "/vault/secrets/apns_certificates.p12"
      exec {
        command = ["true"]
      }
    }
    template {
    contents = <<EOH
    {{- with secret "/secret/applications/production/ejabberd_listener_fpush" }}
    {
    "component": {
        "componentHostname": "fpush-apns.example.net",
        "componentKey": "{{ .Data.data.password_apns }}",
        "serverHostname": "ejabberd.ejabberd.svc.cluster.local",
        "serverPort": 5347
    },
    {{ end }}
    {{- with secret "/secret/applications/production/fpush_apns" }}
    "pushModules": {
        "iOS": {
            "type": "apple",
            "is_default_module": true,
            "apns": {
                "certFilePath": "/vault/secrets/apns_certificates.p12",
                "certPassword": "{{ .Data.data.certPassword }}",
                "environment": "{{ .Data.data.environment }}",
                "topic": "{{ .Data.data.topic }}"
            },
            "ratelimit": {
                "ratelimitTime": "20s",
                "hardRatelimitTime": "20s",
                "ratelimitCleanupInterval": "300s",
                "enabled": false
            }
        }
    },
    "timeout": {
        "xmppconnectionError": "20s"
    }
    }
    {{ end }}
    EOH
      destination = "/vault/secrets/settings.json"
      exec {
        command = ["true"]
      }
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: busybox
  namespace: fpush
  labels:
    app: busybox
spec:
  selector:
    matchLabels:
      app: busybox
  template:
    metadata:
      labels:
        app: busybox
        sidecar.istio.io/inject: "true"
      annotations:
        traffic.sidecar.istio.io/excludeOutboundPorts: "8200"
        vault.security.banzaicloud.io/vault-addr: "https://vault.vault:8200"
        vault.security.banzaicloud.io/vault-role: "fpush"
        vault.security.banzaicloud.io/vault-skip-verify: "false"
        vault.security.banzaicloud.io/vault-tls-secret: "vault-tls"
        vault.security.banzaicloud.io/vault-path: "kubernetes"
        vault.security.banzaicloud.io/vault-agent: "true"
        vault.security.banzaicloud.io/vault-agent-init: "true"
        vault.security.banzaicloud.io/vault-agent-configmap: "fpush-config-apns-vault-agent"
        vault.security.banzaicloud.io/vault-agent-once: "true"
    spec:
      securityContext:
        fsGroup: 1000
      serviceAccountName: default
      containers:
      - name: busybox
        image: busybox
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: true
          runAsUser: 65532
          runAsGroup: 1000
          runAsNonRoot: true
          privileged: false
          capabilities:
            drop: [ALL]
        args: ["/bin/sh", "-c", "sleep 120"]
        env:
          - name: PUSH_ENVIRONMENT
            value: "${vault:secret/data/applications/production/fpush_apns#environment}"

Configuration
No response
Logs
No response
Additional Information
No response

Hi @sando38, I just tried out your first example, and it worked for me when I removed the vault and auto_auth parts from the template (in this case I believe the data for connecting to Vault is used from the annotations). If you try it again and still doesn't work, I'd like to ask you to provide some more info or logs from the failing container! And thanks for using Bank-Vaults! 🙂

Interesting. Thanks for looking into it, however. I will send you the configs later.
I know, the question is unrelated, but, if I use consul templates with the following annotations in my statefulset:
spec:
  template:
    metadata:
      annotations:
        vault.security.banzaicloud.io/vault-addr: "https://vault.vault:8200"
        vault.security.banzaicloud.io/vault-role: "ejabberd"
        vault.security.banzaicloud.io/vault-skip-verify: "false"
        vault.security.banzaicloud.io/vault-tls-secret: "vault-tls"
        vault.security.banzaicloud.io/vault-path: "kubernetes"
        vault.security.banzaicloud.io/vault-agent: "true"
        vault.security.banzaicloud.io/vault-ct-configmap: "ejabberd-config-vault-agent"
        vault.security.banzaicloud.io/vault-ct-once: "false"
        vault.security.banzaicloud.io/vault-ct-secrets-mount-path: "/vault/secrets"

The vault-agent sidecar consul-template does not renew its token and eventually it can not update the secrets anymore. This is the consul template I use:

data:
  config.hcl: |
    vault {
      vault_agent_token_file = "/vault/.vault-token"
      retry {
        backoff = "1s"
      }
    }
    template {
    contents = <<EOH
    ...

I have one hour ttl in the kubernetes auth, but not maxTTL defined, meaning it should be able to renew for 32 days.
Any idea? Thanks in advance!

Okay, when I remove the vault and auto_auth from my configs above, I get the following error from the vault-agent container:
error validating configuration: no auto_auth, cache, or listener block found in config

Have you had any luck on this @sando38? I am going to look into this this week so let me know if this is still relevant.

I am not sure if it is solved, but let's close it. I will come back to you once I dived into the configs again.


Used Selection Sort instead of Bubble Sort

https://github.com/Java-aid/Hackerrank-Solutions/blame/master/HackerRankDashboard/Tutorials/CrackingTheCodingInterview/src/main/java/com/javaaid/hackerrank/solutions/tutorials/ctci/SortingBubbleSort.java
https://www.geeksforgeeks.org/comparison-among-bubble-sort-selection-sort-and-insertion-sort/

hey can u assign this to me


Fix infinite loop when requesting too quickly

On the Pico W we can get in an infinite loop if we request pages too quickly. This is because we get an OSError 32 Broken Pipe back from which we can't recover. I've made it so any of the unexpected errors will be re-raised.
Fixes this issue:
https://github.com/adafruit/Adafruit_CircuitPython_HTTPServer/issues/44
I also wonder if the same issue can happen in  server._receive_header_bytes / server._receive_body_bytes  which has very similar code that catches and swallows OSError unless it is ETIMEDOUT ?

Whilst I can't re-create for the _receive_header_bytes / _receive_body_bytes it feels more correct to throw any unexpected errors  but happy ot take advice if I'm misunderstanding something here.

I don't necessarily understand the potential ramifications in the core, like is this really specific to picow, and if so is there a fix in the core that would be better, or should go alongisde this?

Yeah it's worth understanding if the Broken Pipe is due to some other issue that needs to be fixed.
That being said catching OSError - and then checking for a couple of specific errors and swallowing any other error is at worst hiding issues but at best dangerous of getting in this infinite loop - so I think this change should still be done in case of any other OSErrors that may be thrown in the future.

@FoamyGuy Shall we merge this too, including it in all the new changes?


Ticket #25116 -- Removed long-broken admindocs bookmarklets

Refs ticket #25116.

Made documentation updates and merged in 83f63730306fa3cbdcbe7f0dcb36b0cdcfd1ec4a, thanks!

Sorry I missed those docs. Thanks for the help @timgraham!


[Feature Request] Output colored text

I wonder if it is possible to use the library to output colored text. Having coloring with the Lexer is simple and easy to archieve, yet if I just want to have some fmt.Println wrapper to use the defined color, it would be great. Is this already possible?

Honestly, these APIs were probably designed for internal use.
One of the most annoying architectural decisions of this library for me is that the original author decided to create his own text colouring logic instead of using a third party library.
That's why it's quite limited and incomplete.
I considered refactoring the code to get rid of the proprietary text colouring but I ultimateley decided to leave it for now.
I would recommend that you use another library for printing your own coloured text that doesn't need to go through the rendering pipeline of this library.
Something like https://github.com/fatih/color should do just fine.

Thank you, I've used fatih's library before yet thought, I can omit it this time around.


[TUTORIAL] Improve fp8 performance in matmul tutorial

Few small tweaks to get good perf out of fp8 matmul tutorial.
Make sure to use 3 source dot and pre-transpose b to get good performance. Also add more configs that work well for fp8.
Results on H100:
matmul-performance-fp8:
         M       N       K      cuBLAS       Triton
0    256.0   256.0   256.0    4.723315     0.515271
1    384.0   384.0   384.0   13.559172     1.809276
2    512.0   512.0   512.0   29.746838     4.240955
3    640.0   640.0   640.0   43.002626     8.304106
4    768.0   768.0   768.0   82.301023    14.474209
5    896.0   896.0   896.0  112.394243    22.322590
6   1024.0  1024.0  1024.0  156.067131    35.153936
7   1152.0  1152.0  1152.0  168.818883    48.282714
8   1280.0  1280.0  1280.0  237.880216    69.756254
9   1408.0  1408.0  1408.0  253.940078    87.600713
10  1536.0  1536.0  1536.0  289.262336   110.376420
11  1664.0  1664.0  1664.0  335.623752   147.826066
12  1792.0  1792.0  1792.0  398.737880   185.106313
13  1920.0  1920.0  1920.0  413.428038   219.428573
14  2048.0  2048.0  2048.0  535.799342   258.732974
15  2176.0  2176.0  2176.0  445.953402   309.892560
16  2304.0  2304.0  2304.0  491.583229   386.848147
17  2432.0  2432.0  2432.0  514.462278   371.190268
18  2560.0  2560.0  2560.0  540.224628   506.558471
19  2688.0  2688.0  2688.0  575.833871   591.260483
20  2816.0  2816.0  2816.0  639.914996   668.256898
21  2944.0  2944.0  2944.0  578.228063   760.130168
22  3072.0  3072.0  3072.0  623.087797   824.733435
23  3200.0  3200.0  3200.0  594.743715  1032.778636
24  3328.0  3328.0  3328.0  487.147708  1112.371580
25  3456.0  3456.0  3456.0  572.672615  1199.948878
26  3584.0  3584.0  3584.0  617.577299  1283.359700
27  3712.0  3712.0  3712.0  588.713640  1077.060307
28  3840.0  3840.0  3840.0  620.431964  1149.194331
29  3968.0  3968.0  3968.0  594.377944  1225.601349
30  4096.0  4096.0  4096.0  622.098396  1295.030003

Does cuBLAS use fp8 in the experiments?

Does cuBLAS use fp8 in the experiments?

No somehow I couldn't get it to work, let me try again

Does cuBLAS use fp8 in the experiments?

Looks like torch doesn't support that at the moment somehow

I am a little confused; didn't we get 1.4PFLOPS in fast accum mode?

Does this make the tutorial closer to the ops/matmul version, for FP8 on H100?

I am a little confused; didn't we get 1.4PFLOPS in fast accum mode?
Edit: nvm; maybe let's just show perf up to 8k x 8k instead?

We do get around 1.4PFlops if running a single 8k x 8k kernel however when running auto-tuning and multiple shapes looks like we get thermal throttling and can only get ~1.3PFlops:
matmul-performance-fp8:
        M       N       K      cuBLAS       Triton
0  8192.0  8192.0  8192.0  690.412105  1392.407291

Does this make the tutorial closer to the ops/matmul version, for FP8 on H100?

yes sort of


⚠ Bofrost.es has degraded performance

In 0686ca5, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1540 ms

Resolved: Bofrost.es performance has improved in 35cd8dd after 19 minutes.


Make a GUI version of Gooey to create GUI phyton apps without needing to learn this

Make a GUI builder for inexperienced users of Gooey so you use GUI to turn a command line application to a gui application.

I second that! Been waiting for years but only found one app that did that. It was called Neobook. It was sold and it's still around now but it's commercial and expensive. Sure I could learn programming but for only 1 or 2 apps, I don't think so. Better to hire someone to write it. Autohotkey was another fairly simple gui maker. Also "frog" front end generator was another one using xml files to create the gui. It's site went offline but it's still at Softpedia.


Merge TypeInitializationManager with CompilerTypeSystemContext

There's little point in separating type initialization manager from the
type system context. It's an extra class we need to instantiate and pass
around between Compilation and NodeFactory and doesn't provide much
functionality to warrant being a separate class (we don't expect this to
be more pluggable/overridable than the type system context in general -
we might want to consider a middle man class between
MetadataTypeSystemContext and CompilerTypeSystemContext if pluggability
is desired).
Also, exposing CompilerTypeSystemContext on NodeFactory is more useful.

@nattress @davidwrighton PTAL

LGTM


opt: cache current time for workders and update it periodically

name: Pull request
about: Propose changes to the code
title: ''
labels: ''
assignees: ''

1. Are you opening this pull request for bug-fixs, optimizations or new feature?
2. Please describe how these code changes achieve your intention.

3. Please link to the relevant issues (if any).

4. Which documentation changes (if any) need to be made/updated because of this PR?

4. Checklist

[ ] I have squashed all insignificant commits.
[ ] I have commented my code for explaining package types, values, functions, and non-obvious lines.
[ ] I have written unit tests and verified that all tests passes (if needed).
[ ] I have documented feature info on the README (only when this PR is adding a new feature).
[ ] (optional) I am willing to help maintain this change if there are issues with it later.

Fixed #163


refactor: rework reference mapping

This PR closes #1652.
I tried to (at least partially) rework parser.go move the provider-specific logic out of this file and into the specific packages.
I feel that the internal/providers/terraform/* packages could deserve to be implemented as interfaces (with GetResources(), GetFreeResources(), GetUsageOnlyResources() on top of the funcs I added in the internal/providers/terraform/*/[provider].go files), though it means refactoring lots of stuff in parser.go and registry.go and I'm not sure this PR is the right one for that (+ I feel a bit lazy tonight...).
Let me know what you think!

Thanks @golgeek 🙏! Initial glance through looks good but I should get a chance to give this more of look through in the next couple of days.

Thanks for taking the time to review this @aliscott!


mdBottomSheet backdrop has wrong parent container

Consider the bottomsheet constrained to show in the #content container:
<body>

  <div>
    <md-content id="content"> ... </md-content>
  </div>

</body>

The back backdrop should only be overlayed on the container. Instead the backdrop incorrectly shows on the entire body:

Fixed.


[feature] add option to process comments

(that feature is introduced in gumtree-spoon-diff version 1.23)

Hi @khaes-kth
I have just done some changes on Coming and GtSpoon-diff, please pull the changes due I changed some core classes (even the changes are not critical).
Regards
Matias

Hi @martinezmatias ,
Thank you for letting me know.
Regards,


LED5050 WS2812B (Neopixel) not working

Hardware Environment
LED5050 WS2812B
Related technical area
Neopixel
Is the feature request related to an un-fixed issue?
N/A
Describe the ideal solution/reault/output.
support LED5050 (WS2812B), Adafruit Neopixel library for Ring, Matrix
Additional remarks
No response
I have checked existing/closed list of issues and the Contributing Guide.

[X] I confirm I have checked existing/closed list of issues and the Contributing Guide.

WS2812B is driven by GPIO with high toggle speed. For this hardware AMB82-mini, we will use SPI clk instead of GPIO. It is under road map will added in future.

Looking forward to it.


feat: add Video built-in component

Fixes https://github.com/slidevjs/slidev/issues/699
Usage:
<Video autoPlay="resume" muted controls width="250">
  <source src="/flower.webm" type="video/webm">
  Download the WEBM
</Video>

props:

autoPlay (boolean | 'once' | 'resume' | 'resumeOnce'): automaticaly play the video when it becomes active (within current slide or within current active click element)

true or 'once': if the video is stopped, it does not restart.
'resume': video resumes if stopped and then reactivated. If the video has reached the end, then it will start over from the beginning when it is reactivated.
'resumeOnce': video resumes if stopped and then reactivated, but only if it has not already reached the end.

autoPause ('slide' | 'click'): automaticaly stop the video

'slide': when the video is not in the current slide
'click': when the video is not in the current active click element

autoReset ('slide' | 'click'): automaticaly reset the video

'slide': resets only when the current page containing the video becomes active
'click': resets every time the current click element containing the video becomes active

I think we would better name it in two words to avoid confusing it with the native <video element. Like <SlidevVideo maybe?


[Proposal] make _CalendarDateRangePicker part of the public API

To show a date range picker, you currently have to call showDateRangePicker as per material guidelines.
There are however, lots of use case where showing the range picker fits better if it is not shown inside a dialog. The first example that comes to my head is a booking app where not showing the calendar on the main page would be an UX issue, especially on bigger screen sizes. This is our use case too.
Proposed

Export _CalendarDateRangePicker
Allow customization such that it can work as an effective widget:

enabled / disabled

Can you check if this issue is similar to your case and implementing it would also resolve yours ?
Thanks.

yes


Prevent misaligned pointer dereference in Range

Using a Range<u16, 1, 1000> as a command argument panics with the following error: misaligned pointer dereference: address must be a multiple of 0x8 but is 0x8442bdbfae.
This PR should fix this.
Note that to be able to compile the project locally, I had to add an additional #[allow(invalid_reference_casting)] in the context.rs file.

Sorry about that!
I'll be publishing a new version with these changes in a few days alongside some other changes


S3 SignatureDoesNotMatch with Unicode params

Originally from #948

Here's a script that demonstrates the error. With the fix, Chrome downloads a file named "Test®.txt". Without it, S3 gives a signature error. (Using the more ambitious Unicode string from the first commented out line dl_name gets past the signature phase with this fix, but does still yield a different error.)

Repro script:
# coding=utf-8

import boto3

S3_PARAMS = {
    'region_name': " … ",
    'aws_access_key_id': " … ",
    'aws_secret_access_key': " … "
}
S3_BUCKET = " … "
S3_KEY = " … "

#dl_name = u"Uñicød∑ 👍🏾"
dl_name = u"Test®.txt"

s3 = boto3.client('s3', **S3_PARAMS)
url = s3.generate_presigned_url('get_object', Params={
    'Bucket': S3_BUCKET,
    'Key': S3_KEY,
    'ResponseContentDisposition': "attachment; filename=\"%s\"" % dl_name.replace('"', '\\"')
})

print url

Marking as enhancement / needs-discussion.  We'll need to see what we want to support client side here.

I believe this was an issue with sigv4 that has since been resolved. If this still seems to be an issue to anybody feel free to open a new GitHub issue.


How to use choices with input nodes

Hey 👋🏾
it's me again. During the development of more complex snippets, I tried to use choice nodes here and there. But quite often they do not work for me properly. Now I tried to construct a minimal snippet where I can replicate it to understand the problem. Here is what I found:
local snippet = require('luasnip').snippet
local text_node = require('luasnip').text_node
local insert_node = require('luasnip').insert_node
local choice_node = require('luasnip').choice_node

require('luasnip').snippets = {
  all = {
    snippet('test', {
      choice_node(1, {
        text_node('foo'),
        text_node('bar'),
        insert_node(nil, 'alice'),
        insert_node(nil, 'bob'),
      })
    )
  }
}

When I type test and expand the snippet, I can cycle through the choice nodes until I reach the first insert node. Now I'm "within" the insert node and can't continue to cycle from alice to bob.
I'm not sure if this is intended, but to me it seems like a bug. I can see the challenge here, but I would say this feature is very important.
I think with solutions like #308 this could be mitigated because the user would not cycle through the choice nodes but directly select one. Though I would say this should not be the final solution.
Am I totally off here? Am I doing something wrong? I tried to wrap the insert node into snippet nodes etc. But always the same problem. Actually I came from there and shimmed it down to this minimal snippet.
Thanks for you help in advance!

Heyhey :D
The Snippet looks correct, are you perchance just missing the SELECT-keybind for changing choices?

Aaaaah, damn. I got my mistake. I only had the keybinding to change the choice in insert mode, but not select mode. :face_palm:
Now also my "advanced" choices work.
 I'm not sure how to iterate of the choices. My snippet:
s(
    "trig",
    c(1, {
        t("foo"),
        t("bar"),
    })
)

When I enter trig, I only see "foo" as the output.

The Snippet looks correct, are you perchance just missing the SELECT-keybind for changing choices?

By select keybind, do we mean { "i", "s" } tacked on at the end in cmp.mapping?
["<Tab>"] = cmp.mapping(function(fallback)
    if cmp.visible() then
        cmp.select_next_item()
    elseif luasnip.expandable() then
        luasnip.expand()
    elseif luasnip.expand_or_jumpable() then
        luasnip.expand_or_jump()
    else
        fallback()
    end
end, {
    "i",
    "s",
})

Ah, no, there's a separate action, change_choice, which you'd have to bind in INSERT and SELECT. There's an example in the Readme :)

Thanks! :smile_cat:


Fix visibility errors

net.minecraft.util.palette -> net.minecraft.world.chunk (used by UpgradeData)
net.minecraft.world.structure.generator -> net.minecraft.structure (uses StructurePiece)
net.minecraft.world.gen.feature.StructureFeatures -> net.minecraft.structure (uses StructurePiece)
net.minecraft.item.block -> net.minecraft.item (uses ItemUsageContext)

Seems fine by me, after this is pulled in, I can hook yarn up to run the checker tool on build, and then using a CI to check PRs might not be a bad idea.

Just remember: Don't block PRs or builds over it on snapshot releases. On stable, absolutely; on snapshots, no.

Why wouldn't you enforce it on snapshots right away?

The churn is fast. Having a meaningful mapping out to modders is more important than a 100% correct mapping, in that case.


Feature/amplify graphql

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #645 into master will decrease coverage by 2.03%.
The diff coverage is 35.87%.

@@            Coverage Diff             @@
##           master     #645      +/-   ##
==========================================
- Coverage   88.99%   86.96%   -2.04%
==========================================
  Files          69       71       +2
  Lines        3226     3344     +118
  Branches      613      634      +21
==========================================
+ Hits         2871     2908      +37
- Misses        337      419      +82
+ Partials       18       17       -1

Impacted Files
Coverage Δ

packages/aws-amplify/src/PubSub/Providers/index.ts
100% <100%> (ø)
:arrow_up:

packages/aws-amplify/src/API/API.ts
55.55% <17.1%> (-31.32%)
:arrow_down:

...amplify/src/PubSub/Providers/MqttOverWSProvider.ts
81.92% <35.71%> (-7.55%)
:arrow_down:

...amplify/src/PubSub/Providers/AWSAppSyncProvider.ts
41.17% <41.17%> (ø)

packages/aws-amplify/src/PubSub/PubSub.ts
93.93% <66.66%> (-2.73%)
:arrow_down:

packages/aws-amplify/src/API/RestClient.ts
92.94% <95%> (+0.73%)
:arrow_up:

packages/aws-amplify/src/PubSub/index.ts
100% <0%> (ø)

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 412f5f9...b3cc53d. Read the comment docs.


Feature request - changing default branch name

Right now, gitea always defaults to creating a master branch as the default, and the default can be changed per repo with a setting. It would be nice if we could change the default branch name so that new repos would be created with the given name, e.g. if you wanted to use prod instead of master.

The first branch you push to an empty repository will become the default.

You're given the option to initialise the repo with a readme and license, which always chooses master.

Ok.
Fairly simple thing to do - good first pr.
If you want it quickly stick a bounty on bounty source.

Still would like this.

Is this a typo?
https://github.com/go-gitea/gitea/blob/bbd910ed1b4f52ee66a5cdd8d11f856598161bef/modules/repository/generate.go#L116

No it's a go fmt related change. (The Depth: 1 option is used when generating from template repos.)

@zeripath: fun that you did not notice it, or even check the commit i could be wrong.
Even more strange if that you clear out that it is "Depth: 1" and not "Depth:  1" as the code says, that's why i asked if it was a typo or not, but even if the code works it could be a typo i think depending on how you see on it :)

It's a go fmt change.

I don't know what that means, i don't code go code, i just think it was worth a notice :)
Sorry if bother you...

Instead of looking at the diff take a look at the file:
https://github.com/go-gitea/gitea/blob/cf4f2cfa3ee0e71632df971e154c7b926c39ba80/modules/repository/generate.go#L115-L118
See how the values now align vertically. Look elsewhere in that file and you'll see various other places where there is vertical aligning.
If you add an attribute to a struct initialiser or definition go fmt will align them.
Go is quite opinionated on its formatting - code should and often must be formatted with gofmt.


correct offset calculation in player.js/startAudio

Offset should point to the first played event, not to last skipped one.

As far as I know the project has been abandoned. I have a fork at https://github.com/mscuthbert/midicube which is taking PRs.


Front-end generates improperly typed block expressions

Consider this code from class_builder.dart:
      context = [
        message.withLocation(declaredMember.fileUri, fileOffset, length),
        ...?context
      ];

This gets compiled to this Kernel:
  context = block {
    final dart.core::List<_fe_analyzer_shared.messages.codes::LocatedMessage*>* #t3 = <_fe_analyzer_shared.messages.codes::LocatedMessage*>[];
    #t3.{dart.core::List::add}(message.{_fe_analyzer_shared.messages.codes::Message::withLocation}(declaredMember.{kernel.ast::Member::fileUri}, fileOffset, length));
    final dynamic #t1 = context;
    if(!#t1.{dart.core::Object::==}(null))
      for (final _fe_analyzer_shared.messages.codes::LocatedMessage* #t2 in #t1)
        #t3.{dart.core::List::add}(#t2);
  } =>#t3;

However, this Kernel is ill-typed, because the type of the iterable expression #t1 is dynamic, where it must be a subtype of Iterable to be used directly in a for-in expresion.
/cc @mkustermann @johnniwinther

Thanks for reporting the bug.


make branch basket buffer threadlocal

In each of the branch objects, the last-read basket data is stored. If one tried to naively @threads an event loop, there would be huge contention in this buffer cache. This PR makes nthreads() such buffer caches.
using UnROOT
using LVCyl
using FHist
using Base.Threads

const f = ROOTFile("Run2012BC_DoubleMuParked_Muons.root")
const t = LazyTree(f, "Events", ["nMuon", r"^Muon_(pt|eta|phi|mass|charge)"])

const hmass = Hist1D(Int64; bins=0:0.001:150)
@time @threads for (i,evt) in enumerate(t)
    evt.nMuon != 2 && continue
    sum(evt.Muon_charge) != 0 && continue
    lvs = LorentzVectorCyl.(evt.Muon_pt, evt.Muon_eta, evt.Muon_phi, evt.Muon_mass)
    mass = sum(lvs).mass
    push!(hmass, mass) # rename to atomic_push eventually
end

gives
27.897073 seconds (49.06 M allocations: 39.579 GiB, 23.23% gc time) # with @threads
68.897655 seconds (48.65 M allocations: 38.559 GiB, 7.48% gc time) # without @threads

for julia with 4 threads on a mac laptop. That's about a 2.5x speedup (consistent with me seeing 300% cpu usage instead of 400%).
Note that I commented out the LRU cache around readbasketseek() in both cases to keep RAM usage low (seems to go beyond the advertised maxsize=1024^3 🤷)
The example comes from https://github.com/tamasgal/UnROOT.jl/issues/73 .

Awesome! Btw. the memory estimation is very basic and does not catch nested data well, that's why it can grow larger than the set 1GB.

Should we factor out the LRU cache for now so that people can turn it off without modifying the source?
 readbasket(f::ROOTFile, branch, ith) = readbasketseek(f, branch, branch.fBasketSeek[ith])

-@memoize LRU(; maxsize=1024^3, by=x -> sum(sizeof, x)) function readbasketseek(
+_cache_readbasketseek = LRU(; maxsize=1024^3, by=x -> sum(sizeof, x))
+@memoize _cache_readbasketseek function readbasketseek(
 # function readbasketseek(
 f::ROOTFile, branch::Union{TBranch, TBranchElement}, seek_pos::Int
 )::Tuple{Vector{UInt8},Vector{Int32}}  # just being extra careful

Based on https://github.com/JuliaCollections/Memoize.jl, I tried memoize_cache(readbasketseek) and couldn't get the object out. Maybe you know why.

Actually, I'll play around more with the cache and move my findings to the dedicated issue thread...

Since @threads relies on getindex() to do the chunking, this won't work:
@threads for (i,evt) in enumerate(t)
    i>5 && break
    evt.nMuon != 2 && continue
    sum(evt.Muon_charge) != 0 && continue
    # ...
end

since enumerate(t) doesn't assume a getindex() interface by default (see here), which is pretty inconvenient/unintuitive (until you realize how the macro works...). One would have to write
@threads for i in 1:length(t)
    t.nMuon[i] != 2 && continue
    sum(t.Muon_charge[i]) != 0 && continue
    # ...
end

However, our LazyTable in indexable, so based on the code here, I added some extra definitions to allow us to @threads ... enumerate(t).

As far as features, I think I'm done in this PR. A review is welcome :)

Weeeha! 😃


Unable to decrypt property when property is use placeholder and default value

This is my configuration.
spring:
  redis:
    password: ${PWD:ENC(HOJOq10/kNRG20xuHQvA/Q==)}

He did not decrypt the default value When I did not set the environment variable.

3.0.4 released


Fix lookup config bug in InputListLOC

Fixed bug where lookup config is returning an array of objects and InputListLOC expects just a single object.
Also, removes annoying console logging which we do not really need
Also, makes sure that the lack of a setting for one property variable does not break the other variables where the property is actually set.
Adds a test for the presence of a lookupConfig URI.

Coverage decreased (-0.1%) to 81.468% when pulling 2099ce7877d3b0b22e3bffb772b9f3bbad372741 on debug-loc-list into<PHONE_NUMBER>d8805d2d2a0b20fda246b3ab320f01 on master.

When doing a smoke check on this PR, noticed that the defaults are not showing up for InputListQA.

related to #576

When doing a smoke check on this PR, noticed that the defaults are not showing up for InputListLOC.

@jermnelson this should be fixed now.


Allow backers/sponsors to pledge to future collectives

Problem we are trying to solve:
Many sponsors would love to sponsor either specific projects that are not (yet) on the platform, or a category (e.g. all Machine Learning meetups in this region).
Proposed solution:
We could introduce the concept of a pledge. Any backer could pledge any amount towards any combination of tags and of websites (e.g. a GitHub URL or a Meetup.com URL).
We could have a page /pledges that would list all the pledges as a way to invite people to create collectives to claim them.
MVP
We could implement pledges the way we implement goals. We simply store them in the collective.settings column. It's not ideal because we would want to be able to query all pledges. So it's not the preferred way.
I think it would be better to have a Pledges table with FromCollectiveId, tags, url, description, longDescription, createdAt, deletedAt.

/:collectiveSlug/pledges/edit
Edit the pledges. Would be great to also accept a package.json as input.

/pledges
List all the pledges across the platform.

Claiming a pledge
To claim a pledge, one has to create a collective that matches the tags or the URL (GitHub url, meetup url, ...). Pledges wouldn't be automatic. Instead, whenever there is a new collective that matches a pledge, we send an email to the owner of the pledge. And we can let the admins of the collective know that we have notified x pledges.
That way it's safe for any backer to make a pledge as it's just a way to be notified.
A second version could include the ability to actually put money down but that's much more complex to develop.

I agree that the correct way of thinking about this is to have a pledges table and make them discoverable by anyone in the /discover page.
We could include a pledged tier too (this was suggested by a sponsor). example: a 500/m tier with sponsors logo on every page of their doc.
Definitely pledges shouldn't be automatic. We can treat the claiming a pledge as an apply to a host. It's pending review and author of the pledge can hit accept/reject in an email

we need an owner of this feature.


Exposing prototype as part of /api/settings

GET /api/settings
  {
    "product": {
      "maindb": "ExtManagementSystem",
      "container_deployment_wizard": false,
      "datawarehouse_manager": false
    },
    "prototype": {
      "monitoring": false
    }
  }

Fine backport details:
$ git log -1
commit 28ebe8b4412510cf30ee5f604b20326a7b9bd7c7
Author: Jason Frey<EMAIL_ADDRESS>Date:   Mon Apr 10 17:50:44 2017 -0400

    Merge pull request #14690 from abellotti/api_settings_prototype

    Exposing prototype as part of /api/settings
    (cherry picked from commit 8c79fe378d9e81ae14453994a55e897b87854eec)


Warning in Documentation to wait for 2.0 final

There is still this warning in the index.rst of the documentation:

django-dbbackup is currently under heavy refactoring, stay tuned for new versions and a final 2.0 release.

Am I correct in assuming that this is obsolete now that this package is already at 2.0.4? :-)

Yes, that's my impression, too... people shouldn't be afraid to submit PRs
because of some impending plan to change everything... it's been quite
stable for a while :)
On 10 May 2015 at 11:27, Horst Gutmann<EMAIL_ADDRESS>wrote:

There is still this warning in the index.rst of the documentation:
django-dbbackup is currently under heavy refactoring, stay tuned for new
versions and a final 2.0 release.
Am I correct in assuming that this is obsolete now that this package is
already at 2.0.4? :-)
—
Reply to this email directly or view it on GitHub
https://github.com/mjs7231/django-dbbackup/issues/38.


[feature]: Persist imported Mission Control Data across restarts.

In the course of the SoB 2024 project where we implement an External Distributed Mission Control Coordinator it makes sense to persist the MC data we import XImportMissionControl into LND across restarts (see also https://github.com/lightningnetwork/lnd/discussions/8840 for more background).
The design of the feature should include:

an explicit flag to allow or disallow the persisting of the MC data when importing
sanity checks for the imported data, also taking the import size into account so that we do not overflow the memory when importing a huge number of MC data
saving the data to disc should not degrade the performance of the LND node because it's not a critical part of the system and should be treated with low priority for the scheduler.

cc @mohamedawnallah

While we're at it, perhaps it makes sense to also introduce the concept of mission control namespaces? This way you can import some outside weights to an independent namespace, then specify later on if you want to use that or the "default" namespace.
This also has some overlap with this issue to support profiles for the configs as well: https://github.com/lightningnetwork/lnd/issues/7812. A combo of both would facilitate A/B testing of the various knobs and path finding algos we have.

In the context, one should also check whether the parameters from SetMissionControl can be persisted. Currently, the lnd.conf must also be changed if you want to have the same parameters after the next restart.
In my opinion, parameters that are changed via the API should be persisted. To avoid inconsistencies with the command line flags, these should therefore be removed and the defaults for fresh lnd instances should be hard-coded.

In the context, one should also check whether the parameters from SetMissionControl can be persisted. Currently, the lnd.conf must also be changed if you want to have the same parameters after the next restart.
In my opinion, parameters that are changed via the API should be persisted. To avoid inconsistencies with the command line flags, these should therefore be removed and the defaults for fresh lnd instances should be hard-coded.

Good point, this is basically the idea of namespaces described by roasbeef in #7812, keeping the default config as in the lnd.conf but being able to create router profiles (tagged via namespaces probably and persited to disc) and then also being able to attach those profiles to the send payment requests.

While we're at it, perhaps it makes sense to also introduce the concept of mission control namespaces? This way you can import some outside weights to an independent namespace, then specify later on if you want to use that or the "default" namespace.

Just to clarify my understanding: So we would add a new field to the MC entry called namespace which binds the entry to the specific router profile for example. So every entry can only have 1 namespace attached to it ? If so this would increase the requirement of the MC data, LND would have to keep in memory, or maybe we would have to redesign how we handle the memory MC data so that we only have the loaded namespace related data loaded into memory otherwise the memory consumption might be harmful for the overall stability of the daemon.
Regarding this topic, @mohamedawnallah was doing some stress testing and loading up to 500_000 MC paris into LND which currently LND would just accept and that would lead to a OOM crash. I think we need to make LND more robust in the course of this PR, meaning that we only load for example most recent data into memory and fetch the other data when needed from the db, so we don't have the whole data set loaded in memory ?
I wonder if we should prioritze this architectural issue, because the current Routing Graph seem to not exceed 110000 MC pairs which LND can still handle (depending on the system obviously).

@ziggie1984  & @mohamedawnallah  -> check out #9001. I think it may cover part of what yall are looking for. All that is missing then is to be able to combine results from different namespaces in memory.


♻(gitlint) move gitlint rules into lib/gitlint

Purpose
We use a dedicated script to lint git commits. It is possible to define
extra-rules to extends it. This rules are for now in the gitlint
directory and we want to move it into lib/gitlint.
Proposal

[x] move file gitlint/gitlint_emoji.py into lib/gitlint directory
[x] update .gitlint config extra-path with the new directory
[x] git should not ignored directory lib/gitlint

closes #90

Don't forget the CHANGELOG !

Don't forget the CHANGELOG!

Done ! (and the lint-git is failing as expected with my fixup commit)


Install with CocoaPods Failed.

Install with CocoaPods Failed.
when use pod 'NUI' in podfile, and after it install success,  then i got an error while building the project.
Error:
ld: library not found for -lNUI
clang: error: linker command failed with exit code 1 (use -v to see invocation)
So i download the demo named 'NUIDemo', and modify its podfile and add 'NUI' pod, and after it install success,  then i got the same error.
I can`t solve this problem after i searching and trying for a long time...
What happened to this lib???

Can you provide a minimal example project to reproduce this? Which Cocoapods version are you using?
I just created a new project and added NUI to the Podfile. Builds as expected.

Okay, I just tried to create a new blank project, and get success.
It should be my project get the wrong config with somewhere, thanks a lot for answer my question, and I will post the solution after I run my project with NUI successfully.
With best wishes !

I got the result...
In config of my targets -> Build Settings -> Search Paths -> Library Search Paths.
it is lack of "$PODS_CONFIGURATION_BUILD_DIR/NUIParse" and "$PODS_CONFIGURATION_BUILD_DIR/NUI"
After i added them, i got success.
But, why cocoapods didn't finish config it only in my project...


Carpentry courses draft for MRI and BIDS

I am putting those here for now to let everyone know they exist and to help future me find them again.
Those carptentry courses are drafts and work in progress as far as I know but it would make sense to link them up with the starter kit somehow.

https://github.com/carpentries-incubator/SDC-BIDS-IntroMRI
https://github.com/carpentries-incubator/SDC-BIDS-fMRI
https://github.com/carpentries-incubator/SDC-BIDS-dMRI

pinging @KirstieJane to whom I talked about those recently. :-)

nice! Maybe link in the tutorials section of the wiki?

Hum... I am not sure. Those tutorials are really work in progress at the moment. Maybe we should wait before adding them here otherwise it could be confusing for people who new to BIDS. On the other hand, pointing people in that direction could be a way for those tutorials to get early feedback.
I don't super strongly about this.
What do you think @dorahermes ?

Personally, I don't think I'd link them out just yet. Once they make it out of the Carpentries Incubator, though, they should be in a more stable state and ready for broader feedback / interaction !


TRX limits should be tweaked

The withdrawal will fail if the amount of trx in the hot wallet goes below 3 trx.  However, the current price of TRX appears to be about 13 TRX which means that the hot wallet could run out of gas.
Also the min TRX fee is set at 100, which results in about 7 USD being transferred to depositor wallets.  We reduced the amount to 30 TRX and seem to have good results

pr was accepted
https://github.com/Polygant/OpenCEX-backend/pull/138


fix: ignore exceptions when setting a base with invalid URL

Description

I hope to integrate Vite with a base, which will be specified as http://<%= request.getServerName() %>, resulting in an exception when trying to construct with URL, can we ignore this exception?
Additional context

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

I think it would be quite difficult to maintain later, and it already probably breaks in other places. Maybe you could look into using relative base so you don't need to know the server's base at all? Use base: './'

@patak-dev at least providing an option for specifying that the base is an external URL.


Please add a flag to generate a simplified graphviz diagram.

Feature Description
TL;DR, add to the yosys show command a flag to generate a simplified diagram.
Generating a graph with the show command to visualizing the design is a feature that helps to understand and describe the design. However, as the design grows, the diagram becomes complex and overwhelming as seen in the diagram below of a relatively small project. This feature request is to have an option to generate a simplified and easier to read diagram.
Below is an example that demonstrates this request. I took a graph that was generated by yosys and simplified it manually with these three changes:

Eliminated all the diamond shapes of the wires, having the wires going directly from port to port.

Eliminated wires of nets that connect more than N ports. In this example sys_clk and sys_reset.

Changed the labels of the ports of nets that were eliminated in step 2 to indicate their connectivity. See in the example below how port label "sys_reset" changed to "(sys_reset)" and port label "reset" changed to "reset \n (sys_reset)" to indicate that they are connected to network "sys_reset".

Origianl graph (yosys generated):

Manually simplified graph:

dot_files.zip

Much cleaner output! :)

@nakengelhardt, @mmicko, any thoughts on this?
I would like to add to Apio a 'show' command that generates the diagram and launches a viewer, and having a simple diagram will make it easier to understand.

Thanks @povik.  We plan to add it as an apio command with good behavior for the default apio show such that having a flag to hide nets with fanout > N will allows us to use a fixed command without having to analyze the design.

I am writing down some thoughts on this. Not sure I would want to see all those "simplified" changes being enabled by a single flag at once, but I suppose that doesn't matter much for your use case.

Eliminated all the diamond shapes of the wires, having the wires going directly from port to port.

Sounds like a good feature, a nice self-contained flag.

Eliminated wires of nets that connect more than N ports. In this example sys_clk and sys_reset.

Hmm. I wonder how could we compose this out of other Yosys features, since that seems preferable to a special-made option of show. We could have a command that creates a selection out of wires with high fanout, and use this named selection in the selection syntax passed to the show command to deselect those wires.

Changed the labels of the ports of nets that were eliminated in step 2 to indicate their connectivity. See in the example below how port label "sys_reset" changed to "(sys_reset)" and port label "reset" changed to "reset \n (sys_reset)" to indicate that they are connected to network "sys_reset".

Should this only happen when the port name matches the wire name?

Hi @povik, here is some formalization of this request. I hope it will address your points.
A net is a set of size(net)>0 end points (including output, input, pins, etc, but not including the net diamond itself).  Each net is assigned (somehow, explained below) to one of the four net policies below and this controls how it is generated in the graph.

 Net reflected in port labels means: if the net name equals the port name, than port label changes from port to (port) to indicates it's connected to a net of same name.  Else, the port label changes from port to port\n(net) to indicates that it's connected to a network with a different name.
Currently all nets are assigned to policy 1. This request is to have different policy assignment that will improve the readability.  For example, this policy assignment will be useful for apio:

size(net) == 1   --> policy  0.
size(net) >= some flag value   --> policy 3
Else   --> default policy 2

Once you have this policy model implemented, you can support additional flags, such as explicit net names or regexs,  to manually tune the policy assignment, but apio is likely to use only fixed flag values that are independent of the design.
Does it address your questions?

I feel like, given the amount of constraints on the output, this could be better addressed in apio by parsing the Yosys JSON output.

What I mean is that if you would like to have a certain specific formatting for graphs in Apio it sounds great to me, but it's not clear that Apio users' needs and general Yosys users' needs are the same, or that it's a good way to spend Yosys maintainer time, or that it's a good idea to tie development cycles of the two together.

This sounds too use case specific to me. For example, except in the niche case where you are displaying a top level module that only instantiates other modules but does not contain much other logic, removing wire names will remove the only named objects in the diagram, leaving only the auto-generated private names that are unrelated to the source code. In the general case, this would make it very hard for the user to interpret the diagram at all.
The show code is also already quite complicated, and I don't know that the information needed to implement these features is available in the places the various nodes are emitted. Unless it's easy to integrate into the show code (in which case, file a PR for each individual option), I think it would make more sense for this to be a plugin maintained separately by the Apio folks.

@nakengelhardt, the simplification I described is just one proposal and if you have ideas for other simplifications I am sure they are just as good. As the concern of information loss due to removal of network names, this can be addressed by adding to  net Policy 2  an 'X'  Net reflected in port labels.
@whitequark, my intention was not to request an apio feature request but a general yosys/show improvement, so please consider it as such. One of the usages of the diagram is to provide an overview of the design and that use case would benefit from diagram simplification.
@whitequark, you mentioned yosys's json output.

Is it considered a stable interface with other systems and tools (vs mostly internal)?
Does it have an official documentation?
Do you believe that it contains all the information necessary to create a diagram similar to the one show creates?

There are many things that can be connected to ports that are not whole wires with a name (even less a public name), so your proposal of replacing nets with names on the ports is also only suited to the simplest cases. That doesn't mean there can't be such an option available to use where it makes sense, we're happy to look at a PR, but if you are interested in writing such a PR, make sure it still handles all the other things that could be present in a module.
The JSON is a stable interface used to interface with other tools (nextpnr mainly). Its documentation is here.

One of the usages of the diagram is to provide an overview of the design and that use case would benefit from diagram simplification.

The show command is a tool designed by/for Yosys developers working on the compiler itself and intended for use as such; it happens to also be useful for others but that isn't its primary purpose. (I was rather surprised to learn that at least a few people consider it a core part of their workflow.) It's not really a converter of Yosys netlists to schematics or block diagrams (which sounds to me like what you want here), and adding features aimed towards that purpose must not compromise its primary purpose.

Thank you everybody for the feedback. I will submit small incremental PRs and we can go from there. Keeping all the existing graph features for developers will be a prime directive, with flags for use cases of documentation and design exploration.


SuspensionReason of Get-GSUser does not list 'Automatically Suspended'

Describe the bug
Perhaps this is an issue on Google's side and not PSGSuite, but I have a user that was 'Automatically Suspended' by google (see image below) due to suspicious account activity.  However, when I use Get-PSGSuite against this account there is no information under SuspensionReason.  Perhaps Google is just not putting any information into that field when they lock an account or perhaps PSGSuite could do more to get that information.  I don't know.  Let me know which is the case.
Expected behavior
Expect SuspensionReason to include 'Automatically Suspended by Google' information.
Screenshots

Hey @BarnumD - Are they showing anything at all under SuspensionReason? And are they showing Suspended : True? I've honestly only ever seen ADMIN as the SuspensionReason, but I also haven't checked under the exact circumstances you're seeing as it doesn't happen all that often. At any rate, PSGSuite isn't manipulating the data returned the Directory API, so what you're seeing in PSGSuite is what Google is returning.
Here's a sample showing a working user vs suspended user:

No, SuspensionReason is completely blank.  Suspended is True.  So I take it that there's nothing you can do about it.  What about the ability to set that SuspensionReason field from the module?  Should I open a feature request for that?

That field is actually ReadOnly/not writable on the API itself, so we're a little stuck with what Google provides here, unfortunately:
Doc Link

Thanks for the information.  Very helpful.  I just wish Google would have provided the reason.

100% agreed! That field could be so much more useful 😞


Enable/Disable some of the hotswap agent plugins

Sometimes people have a problem with some of the hotswap agent plugins.
Such as here https://github.com/HotswapProjects/HotswapAgent/issues/187
It will be great to have a possibility to disable some of the hotswap agent plugins through the hotswap IntelliJ idea plugin.

@kh0ma Thank you for suggestion! The option will be added soon.


Feature Request: Indicator light on Crafting Monitor.

Can we have an indicator light on the front of the Crafting Monitor indicating status?
You could just reuse the disk drive indicator:
Red: Houston we have a problem!
Orange : working on it.
Blue: Idle/finished.

No! This was requested already, please look for previous issues before making an issue!

It would be nice to know which issue it is a duplicate of. I just did a search for "crafting indicator" and didn't see any useful results. I tried a search for just "monitor", and saw nothing obvious. With 1000+ issues it's non-trivial to simply scan them all.

Agreed, I will look this up for you in a second.

Duplicate of #197

Thanks for the update.


Distribute through snaps (no repositories/distro difficulties)

snapcraft.io
"Package any app for every Linux desktop, server, cloud or device, and deliver updates directly."

#2956 #6509

Thank you for contributing!
We noticed that this is a duplicate of https://github.com/atom/atom/issues/13298, which is also a duplicate of https://github.com/atom/atom/issues/2956. You may want to subscribe there for updates.
Because we treat our issues list as the Atom team's backlog, we close duplicates to focus our work and not have to touch the same chunk of code for the same reason multiple times. This is also why we may mark something as duplicate that isn't an exact duplicate but is closely related.
For information on how to use GitHub's search feature to find out if something is a duplicate before filing, see the How Can I Contribute? section of the Atom CONTRIBUTING guide.

It is not closely related, since it is distro agnostic and isn't repository.


CCC "check all" behavior a bit confusing

When I select the ADS check all button, I can see all other buttons change. This is expected UI.
When I set the check all bonus to 0, all of the other numbers stay the same. This is confusing UI.
Another complication with this UI scheme is that the "check all" bonus defaults to zero, but there are non-zero entries in other boxes that are not overwritten.
(This would also be a complication for the radio buttons if GDS were not the default for all property years.)
I think the right behavior is that check all bonus default should be x.yz or similar, and then if someone overwrites it with numbers, all of the other numbers are overwritten. Perhaps none of the check all radio buttons should be selected by default.

Fixed in #319

I still see this issue:

Perhaps we should drop this - it's been difficult to get the UI to work correctly and the model doesn't handle these check all inputs at all right now.
cc @PeterDSteinberg

I believe this issue can be closed.  Can't find PR, but "check all" has been removed.

closed via #347 which removed Check All.


show all catalog items in cart with zero quantity

🗃 Github Issue Or Explanation for this PR. (What is it supposed to do and Why is needed)
Enter Issue number here
✅ Checklist

[ ] Github issue details are up to date for people to QA.
[ ] I have tested all my changes.

🕵♂ Notes for Code Reviewer
Technical explanations to help your peers review your work - including environments, credentials, etc.
🙈 Screenshots
For all UI changes

description 1
description 2

img1
img2

👯♀ Paired with
@github-handle or "nobody" if you did not pair.

#426

#426


Update CSSWG boilerplate

More HTTPS
Use WG-NOTE instead of NOTE
Remove Style Activity

@xfq I see that @tabatkins did some header changes with regards to https as well. Could you please check that the changes in csswg are in synch with fxtf?

@xfq I see that @tabatkins did some header changes with regards to https as well. Could you please check that the changes in csswg are in synch with fxtf?

I just sync'd Tab's HTTPS changes to my branch. Thank you!

This all looks reasonable to me; are we waiting for @svgeesus's review?


Dependencies are not registered correctly.

Running pip install pyplastimatch won't install any dependencies. Apparently, with the latest release (0.4.4) something wen't wrong in the automated build action and the defined dependencies got ignored.
From the action log:
/tmp/build-env-gel4u79x/lib/python3.12/site-packages/setuptools/config/_apply_pyprojecttoml.py:75: _MissingDynamic: `dependencies` defined outside of `pyproject.toml` is ignored.
!!

        ********************************************************************************
        The following seems to be defined outside of `pyproject.toml`:

        `dependencies = ['itk', 'matplotlib', 'numpy', 'pandas', 'pydicom', 'requests', 'scikit-image', 'SimpleITK']`

        According to the spec (see the link below), however, setuptools CANNOT
        consider this value unless `dependencies` is listed as `dynamic`.

        https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

        To prevent this problem, you can list `dependencies` under `dynamic` or alternatively
        remove the `[project]` table from your file and rely entirely on other means of
        configuration.
        ********************************************************************************

!!

Looks like this may be caused by the release of setuptools 69.0.0 on Nov 20, 2023, which has a list of deprecations and removals.
Possible solutions are to include requirements in the dynamic list under [project] or to move the dependencies from the  setup.py file to the pyproject.toml file.
I will try option one for now as it's the less invasive option. Since we don't really have a dynamic setup, @denbonte we can consider moving most from the setup.py (or maybe even completely replacing the setup.py).


Markdown wrongly highlighting --- horizontal rules as frontmatter

Issue Type: Bug
If a ----style horizontal rule is done after the frontmatter, the highlighter considers anything following that rule to be frontmatter, and highlights it as such, even though it isn’t, as frontmatter is only allowed at the beginning.
For example, this block (which is highlighted fine here on GH):
---
title: 'Test'
---

## Hi!
Here’s an intro text.

---

## Hi!
After a thematic break, the highlight is broken.

Appears as such:

This has no effect on the Preview. It’s purely a syntax highlighting issue.
 Does this reproduce in the latest VS Code insiders build with all extensions disabled?

@mjbvz Apologies, it doesn't. Sorry for taking your time.