feat: Export all user Memos as a .zip of Markdown files

This PR adds an "Export Memos" button to the Setting => My Account page.  This will download a zip folder, generated by the server, containing all of the user's Memos in Markdown files.  The individual memos filenames are named after their creation date in RFC3339 format.  This PR is should partially address this open enhancement to improve exports with Memos.
I also resolved some memory leaks with downloading images and files in the share dialog.

Thanks for the PR, there are some points I would like to clarify about import/export:

I think import/export operations should be very infrequent;
It's more convenient to import/export directly through the database;
Memos now is mainly suit for person/family or friends, not for strangers on the internet. All data is stored on the user's machine.

So I don't think we need to do export in UI. Are there any other reasons about this feature? @nalderto

I agree import/export is infrequent, but don't necessarily think that means that it shouldn't be included in the UI.  Folks don't change things like "Allow user signup" that often, but that doesn't mean it shouldn't be in the UI.
Presently in Memos, yes, it is easier to import/export via the database.  However, I think that is something we should strive to make easier.  If folks decide they want to move to another Notes app, we shouldn't expect them to have to access the DB directly to export their data.  This is a feature that is expected and desired with other notes apps.
Less tech savvy friends/family should be able to export their data without having to have their Memos admin export their data manually.

For example, Joplin has this functionality

I foresee a separate tab in Settings for Import/Export instead of always having it in "My Account", however since we would only have export functionality at the moment, I figured "My Account" is fine for now.

Not the same as Joplin, memos is deployed by someone and can be used by others. In case one user has a large amount of data, it may take up a lot of resources when exporting or even cause the service to hang. So perhaps export should be an administrator's function.

That's fair, although with the infrequency of exports occurring and friends/family use case of Memos, I don't see that being a major issue.  Making it an admin only is better than nothing, although that makes it difficult to export other users' data.  The file creation is all done in memory, so I would hope that performance wouldn't be impacted significantly with an export

SGTM. It's better to use APIv2(protobuf + gRPC) to implement the export api instead of the deprecated one.

Gotcha!  I wasn’t sure if I should use v1 or v2.  I can re-implement this with the v2 API in a couple weeks if you’d like.

@boojack  @nalderto
Merging the PR is highly advisable for those like me needing reliable export features.
I frequently use Obsidian and various other note-taking apps for my day-to-day tasks, and for quick notes, I turn to Memos because it's incredibly user-friendly & handy. In this case, I aim to export my memos to a local storage solution to unify all my notes in a single location. Having this export capability is a critical requirement for me.
Previously, before the Open API was phased out, I could export all my memos seamlessly using the memos-export service. Regrettably, this is no longer possible.

I can backup database files, but the database files are very inconvenient for further interactions with notes.
I think we can not implement the import function, but the export function is necessary. There are already many users requesting a similar function in GitHub Issues, I hope it can be implemented.

thank you for your work.Memos as a distributed platform, I believe the export/import feature is very important, users can freely migrate to another site. thank you again.

I'm closing this PR, because I made a new PR to implement the streaming gRPC endpoint to download the zip folder.


Can't get Lock on HackRF Clone

I have just replaced my broken Hackrf-one that was from nooelec with a hackrf-one clone. I have the 0.5PPM TCXO module, an ANT500 that the nooelec came with but now it will not spoof/lock. It seems like when I use it it only jams GPS. Does anyone have issues with the HackRF-One clones or is it something the the $400 hackrf ones can only do?

Ok this was a fulty TCXO. I reballed it and it works.

Ok this was due to a faulty TCXO. I reballed it and it works.

Ok this was due to a faulty TCXO. I reballed it and it works.

Ok this was due to a faulty TCXO. I reballed it and it works.

Ok this was due to a faulty TCXO. I reballed it and it works.


Add basic video encoder tutorial

The code for this is effectively done, here:
https://luxonis-community.slack.com/archives/CT79Z6GP5/p1607116306041700?thread_ts=1606945766.006400&cid=CT79Z6GP5

Implemented here: https://docs.luxonis.com/projects/api/en/latest/samples/04_rgb_encoding/


ArduCAM Library not Compiling for Arduino DUE

Hi,
I am working with ArduCAM-Mini 2MP and Arduino DUE, and I am running the lastest version of Arduino, 1.6.7.  I am trying to run some of the example code in the ArduCAM library, but I have not been able to get any of the downloaded library code to compile when Board is set to DUE.  All of the code in the library will compile when Board is set to UNO, but as soon as I switch Board to DUE(Programming Port) I get a long list of error warnings.  For example, compiling ARDUCAM_MINI_OV2640_Video_Streaming gives warnings such as the following (The complete list of warnings is attached as a text file):
In file included from C:\Users\myUserName\Documents\Arduino\libraries\ArduCAM\examples\mini\ArduCAM_Mini_OV2640_Video_Streaming\ArduCAM_Mini_OV2640_Video_Streaming.ino:23:0:

C:\Users\myUserName\Documents\Arduino\libraries\ArduCAM/ArduCAM.h:131:0: warning: "pgm_read_byte" redefined [enabled by default]

     #define pgm_read_byte(x)        (*((char *)x))
^

In file included from C:\Users\myUserName\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.6\cores\arduino/Arduino.h:31:0,

                 from sketch\ArduCAM_Mini_OV2640_Video_Streaming.ino.cpp:1:

C:\Users\myUserName\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.6\cores\arduino/avr/pgmspace.h:56:0: note: this is the location of the previous definition

 #define pgm_read_byte(addr) (*(const unsigned char *)(addr))

 ^

I was able to successfully run some basic code (blinking an LED light) with the DUE, so the way that I am connecting to the DUE does not seem to be the issue.  I have been reading a lot on the forums, and I have not found anything that seems to fully address my problem.  I have found some things that suggest this may be a problem due to PROGMEM only being compatible with AVR-based boards, while the DUE is ARM-based, but I am unsure how to proceed if that is the case.
Please let me know if you know anything regarding this error and if there are any modifications to the code that I should be making in order to run the library on DUE.  I would appreciate any help in resolving this issue.
Thank you for your time!
For a complete error warning, please see:
ArduCAM_DUE_Errors.txt

Hi Jessica, thanks for your question.
It is strange that I do not have this compilation problem here with my Arduino IDE 1.6.7.
Board Arduino Due (Programming Port) with version 1.6.6 add on package installed.
The definition of PROGMEM is defined in the ArduCAM.h file, so you have to look into this file for detail.
Let me know if you make any progress.

Hi Lee,
I have not managed to make the compilation warnings go away, but it appears they are just warnings and do not effect the functionality of the code.  I figured out that my wiring had been incorrect originally.  I also had to change the baud rate from Serial.begin(921600) to Serial.begin(115200).  Now I can get single images in the ArduCAM host application.
Thanks!

Hello,
I'm having issues as well getting the ArduCam to run with the DUE.  Could you tell me how you wired up the camera to the Arduino to get it to work eventually?

@Patrickyp Hi, I would be happy to tell you how I wired it.
Basically follow the information here for how to attach to the SPI header pins.  Make sure you put VCC on the SPI header.
The CS pin on ArduCAM can be wired to pin 10 (there are a couple others that will work, but this one is in the example code).  The SDA and SCL go to SDA1 and SCL1, respectively.
I have been running the OV2640_FIFO_UART example with the ArduCAM host application.  If you happen to find a way to use the ArduCAM without the host application please let me know!!

@jmcwil Thank you for your reply.  Just to confirm did you use the SPI header and not the ICSP header on the DUE?

@Patrickyp, you have to use the signals on ICSP, it is the default SPI signals for all Arduino boards.
Send the photo of your wiring, it may help diagnose your problem.


Loss in Spacy_Transformers_Demo

Thank you very much for creating the tutorial!
When I try to replicate it on colab with GPU, loss keeps increasing. Also there is no significant improvement in F-score according to the following output (for Bert and XLnet). Is this result expected?

Humble thanks to @kayvane for that --- it's really helpful!
I think the results there look reasonably expected?


Can't get Mirror's Edge Effects to work on Corsair K70

What are you experiencing an issue with?

[ ] Aurora
[x] Aurora supported game, (Fill in the game)
[ ] Aurora Wrapper
[ ] Aurora Profile
[ ] Aurora supported device, (Fill in problematic devices)
[ ] Aurora Scripts
[ ] Aurora Updater
[x] Aurora Lighting issue
[ ] Other, (Fill in another issue here)

What kind of an issue is it?

[ ] Crash
[ ] Performance problems
[x] Visual bug
[ ] Localization issue
[ ] Enhancement suggestion
[ ] Device issue
[x] Other, (Fill in another type of issue here)

Expected behavior:
Should have effects and work automatically like every other LG RGB app
Actual behavior:
Keyboard just shows white, doesn't change with effects like it should
How often does this problem occur?
Every time
Please describe the steps to reproduce this issue:

Starting Mirror's Edge Catalyst
K70 Corsair

What is the version of Aurora you are experiencing this issue with?
Newest
Does the previous version of Aurora have this issue?
Not sure

Duplicate of #1052


Add an isObtained check to BisonSteak's update code

Describe the bug
Bison steak will grant max hp up no matter obtained or not.
To Reproduce
Call Bison Steak's update method when player hasn't obtained it yet, i.e., when using the relic picking screen in my mod, Loadout
Expected behavior
It should not add health until obtained.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
using RelicGet hook from BaseMod and onEquip() call to account for relics before BisonSteak might be better, imo

Got it, will fix.
Bison steak was originally done with relicget, but for some reason that hook is... Jank? to say the least. this seems to be generally more stable, at least until something like this happens.

Uploaded!


Normalise data types

Worth going through and checking all usages are valid:
IDs (weapon class, season but not operators) - byte
Actions (Kills, Deaths, Wins, Losses, Barricades, etc.) - uint
Ratios (KD, WL) - float
Also make sure naming conventions are kept:
KD = Kd
WL = Wl
ID = Id
and so on...

Closed by #155


feat: add plop generator

Codecov Report

Merging #4 (58e7207) into main (ad3c4d3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #4   +/-   ##
=======================================
  Coverage   20.00%   20.00%
=======================================
  Files           3        3
  Lines          10       10
=======================================
  Hits            2        2
  Misses          8        8

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 ad3c4d3...58e7207. Read the comment docs.


fix Fix replay erase table NPE

NPE may occur in some special scenarios so we will take some precautions here.

run buildall


Patch 2

Updated themes that had the wrong info.

We stall have themes like athlete that Allow you to choose a +1 to str, dex or con... What would be the best way to handle those? Either the Ability boost needs to be modifiable or we could create 3 different Athlete themes, each with a different + 1ability boost.

This still needs a cook but the json seems to be correct now

Looks fine, I'll merge it and cook it myself. Thanks!


[BUG]: MySQL BigInt Unsigned Precision Loss

What version of drizzle-orm are you using?
0.23.2
Describe the Bug
When returning a number larger than 2^53, the number loses precision. MySql BigInt Unsigned is from 0 to 2^64-1. The solution is to cast BigInt to string like sequelize and other libraries who dealt with the issue. If I had time to deep dive the code I would find it and submit a fix, figured I could at least report it to you guys.

@hatemjaber try to use something like this in schema
name: bigint('name', { mode: 'bigint' }).notNull(),

mode bigint will cast to BigInt instead of number

I did switch to that and it worked as expected, I guess I was expecting this to inherit the behavior but it seems I don't full understand what's going on.
const bigintUnsiged = customType<{ data: bigint; }>({
    dataType() {
        return 'bigint(20) unsigned';
    }
});

@hatemjaber you can define it like this
// if you want bigint as result
const bigintUnsiged = customType<{ data: bigint; driverData: string; config: { length: number } }>({
	dataType(config) {
		return typeof config.length !== 'undefined' ? ` bigint(${config.length}) unsigned` : 'bigint unsigned';
	},
	fromDriver(value: string) {
		return BigInt(value);
	},
});

// if you want string as result
const bigintUnsigedString = customType<{ data: string; driverData: string; config: { length: number } }>({
	dataType(config) {
		return typeof config.length !== 'undefined' ? ` bigint(${config.length}) unsigned` : 'bigint unsigned';
	},
	fromDriver(value: string) {
		return value;
	},
});

Usage
const usersTable = pgTable('users', {
	t: bigintUnsiged('name', { length: 20 }),
	t1: bigintUnsigedString('name', { length: 20 })
});

@hatemjaber hope it will work

@AndriiSherman thank you, that worked out as expected!
The reason I went this route is because when generating the migration it did have the bigint(20) unsigned, it only had bigint next to the field. Is this something that will be baked in? Will there be options for bigin() to allow configuration?

We have bigint unsigned in backlog, yes!

We have bigint unsigned in backlog, yes!

@AndriiSherman cool and any news on having unsigned supported?


As a content editor, I want to batch import authors/creator information, so that I can update multiple records with annotations made externally

This is the creator csv of information we want to import. These columns should all be able to map to fields in the django database. We'll investigate. https://flatgithub.com/Princeton-CDH/geotaste/blob/main/data/1.3-beta/creators.csv?filename=data%2F1.3-beta%2Fcreators.csv&sha=95b385b2c79462bff622d9c01ed7dc0baf3a9a27
Update 2/1/24: We have this working now in the admin interface on QA. If you go to /admin/people/person you should see an import and export button. Export should export all Persons, member or creator or both, with all fields. Import should, for now, import only the fields relevant to the currently annotated data (nationality and gender of authors).
Testing instructions

[x] Confirm import/export buttons are present on Person admin page
[x] Confirm csv export works and that fields are present
[x] Confirm a 'slug' field is in export -- this field is needed for import
[x] Import a csv of 10 new authors' info

[x] Confirm a preview of changes is shown
[x] Click "confirm import" button works, check that number of records updated is shown

[x] Import a csv of all new author info

[x] Check that preview of changes is shown
[x] Check "confirm import" works and shows number of records updated
[x] If more than 1,000 records updated, check that a warning message shows at top of page indicating that a server-side index will be necessary
[x] ~Confirm that new countries not in DB now are (Ancient Greece, Ancient Rome, Czechoslovakia, Iceland, India, Korea, Mexico, Norway, Persia, Philippines, Scotland, Slovenia, Trinidad and Tobago, Wales, Yugoslavia)~ this is working for book Genre but not Country, I will fix before next testing
[x] Confirm that authors previously without nationality and gender now have them when seen from the admin interface
[x] Confirm that log entries for updated Persons show a change was made from django import export / admin interface

[x] Check for appropriate errors

[x] Try re-importing the 10 person csv above but first editing it in excel to replace slug in the header with slugxx or another word; then make sure an error is shown
[x] Try re-importing a person CSV after all steps above made. Confirm that all records are skipped because already updated

We have a csv with gender information for creators, drawn from VIAF and then supplemented by hand. This information should fit nicely in the gender section that's already in the database.

Re:

Confirm csv export works and that fields are present

The instructions do not include the fields to verify. They all seem present. Here's a screenshot:

Re:

If more than 1,000 records updated, check that a warning message shows at top of page indicating that a server-side index will be necessary

I didn't see a warning message

Re:

Confirm that authors previously without nationality and gender now have them when seen from the admin interface

I don't think this worked—only about 800 creators have nationalities.  I'll try the import again.

Re:

Try re-importing the 10 person csv above but first editing it in excel to replace slug in the header with slugxx or another word; then make sure an error is shown

This worked—I received an error message!

This all looks good @quadrismegistus and @rlskoeser except for:

If more than 1,000 records updated, check that a warning message shows at top of page indicating that a server-side index will be necessary

Can I close anyway?

@jkotin please wait to close until I can check to see why you didn't see the message.

I still don't see a "warning message."  But the import seemed to work. See screenshots.

@jkotin thanks for including the screenshots. The "warning message" is the one in yellow in your second screenshot (thanks for including those!); do you see how it says that only the first 1000 changes were indexed?
Please let me know if this is clear enough (maybe the testing instructions were unclear).
FWIW, I'm not sure how strictly necessary this limit is, and the 1000 is somewhat arbitrary. Ryan was concerned about the indexing taking too long and the import hanging - it seemed more important to show the results of your import.

Great!  I was expecting the warning message to say "warning"!


Add links/notes for front-end repository

I think that we talked about this a while back but I guess it fell through the cracks. Can you please add some links to the front-end repo in the docs?
For example please add links in the following sections: here (in the bullet list) and here and here.
I believe we spoke previously about keeping the front-end documentation separate from this repository so that things are not duplicated. So feel free to write whatever you think is best. Something that simply says, "Find the front-end code here." is more than enough from my perspective but the two repos should be connected

I added the frontend repo links to these code documentation.


kulala-fmt: 1.3.2 -> 1.4.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/mistweaverco/kulala-fmt/releases.
meta.description for kulala-fmt is: Opinionated .http and .rest files linter and formatter
meta.homepage for kulala-fmt is: https://github.com/mistweaverco/kulala-fmt
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.4.0 with grep in /nix/store/92fwapjmajyp6s47zh1l5hqlq90rp092-kulala-fmt-1.4.0
found 1.4.0 in filename of file in /nix/store/92fwapjmajyp6s47zh1l5hqlq90rp092-kulala-fmt-1.4.0

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

kulala-fmt

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/92fwapjmajyp6s47zh1l5hqlq90rp092-kulala-fmt-1.4.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A kulala-fmt https://github.com/r-ryantm/nixpkgs/archive/f8262abfe0766684de93c6a1cc124125f85cd571.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/f8262abfe0766684de93c6a1cc124125f85cd571#kulala-fmt

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/92fwapjmajyp6s47zh1l5hqlq90rp092-kulala-fmt-1.4.0
ls -la /nix/store/92fwapjmajyp6s47zh1l5hqlq90rp092-kulala-fmt-1.4.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

kulala-fmt

Maintainer pings
cc @CnTeng for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge

@NixOS/nixpkgs-merge-bot merge

@NixOS/nixpkgs-merge-bot merge


Data template examples are wrong

All of the data template examples on this page: https://github.com/emqx/kuiper/blob/master/docs/en_US/rules/overview.md#data-template are wrong.  None are valid JSON.  The examples all use backtick.  These examples should be copy/paste-able into a kuiper rule.  For example:
"dataTemplate": {"content":{{json .}}},
should be:
"dataTemplate": ""content": {{json .}}""

@dmocek Yes, the documentation is wrong to use backtick because it is not supported in JSON. Should be "dataTemplate": "\"content\": {{json .}}". We will update the document. Thanks.

Thanks!  Please let me know when the docs are updated.

The doc has updated so close this one

Thanks for the updates.


Reset jsonPath to defaults if no query tags

Fixes https://github.com/hapi-swagger/hapi-swagger/issues/1014
After adding query tags to url, attempting to remove the tags will always show the previous tags.
Best to reset the jsonPath when there are no query tags.
Added an integration test as well.

@elawad released! thanks!

Hi, this PR is breaking our swagger setup which uses a custom json path, should it be settings.jsonPath instead of Defaults.jsonPath?

Unfortunatelysettings.jsonPath gets mutated as soon as you add tags to url. So it’s not a reliable source to reset to defaults.
What’s your config? I’ll try to run through some tests cases.

@Marsup sorry about that. Will release fix.


howboutthemcowboys - double-check database name across scripts

database name howboutthemcowboys, howaboutthemcowboys, and howbouthemcowboys... Doublecheck the spelling/syntax across all scripts

Fixed


Optimisation: map fusion

.map(a).map(b).map(c) => .map(f => c(b(a(f))))

Is it possible for this to be conditional on Functor evidence? This is safe for lawful functors but general map operations might not make this safe

@Daenyth if applied after typing it might be more the case that some .maps are good and others are bad, which the user could provide via a regex I should imagine.

I bet compile-time optimizations using ScalaZ or Cats could be a whole other layer unto itself.

Could we not make some Scalaz/Cats optimizer? Then we can work on Functor, not map. But that would be a different tool.

I forgot to close this... go see https://github.com/scalaz/scalaz-plugin


Storybook example

Hey,
When using this package alongside Storybook I get the following error:
TypeError: Cannot read properties of null (reading 'query')
    at useSelectedLanguage

The component loaded into my story uses the useSelectedLanguage hook. I get the same error using the useTranslation hook and the useSelectedLanguage hook.
I'm assuming there is an extra step needed to wrap storybook in the translation context. Have you tried this / experienced the same?
Any help would be really appreciated

Hi,
Thank you for reaching out.
Can you provide a complete code example or even better a sample repostiory so I can see the actual code?
Thank you in advance!

Hey @martinkr sorry for the slow reply. I've opted for another approach so happy to close this one. Thank you

It would be nice to integrate next-export-i18n with Storybook globals so that it's usable with Chromatic Story Modes.


python311Packages.google-ai-generativelanguage: 0.5.2 -> 0.5.3

Changelog: https://github.com/googleapis/google-cloud-python/blob/google-ai-generativelanguage-v0.5.3/packages/google-ai-generativelanguage/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

4 packages built:

python311Packages.google-ai-generativelanguage
python311Packages.google-ai-generativelanguage.dist
python311Packages.google-generativeai
python311Packages.google-generativeai.dist


config changes not picked up unless config path is overridden

as per the current logic, the cache is presumed current regardless of config changes made.
as a result, repeated invocations of teraflops commands (e.g. teraflops plan) will simply reuse the old .terraform/teraflops.json, regardless of whether it still reflects the actual configuration.
as a workaround, overriding the config path with a non-. value like teraflops -f $PWD plan will currently defeat the cache, processing any config changes.

the intention was to reuse generated terraform json file for nix only operations - for terraform operations it should be regenerated
if this is not the case then at some point a bug was introduced... though in daily usage i haven't noticed this recently 🤔

@KiaraGrouwstra are you able to provide a minimal example of this?

iirc it should reproduce from just using a tutorial example running:

teraflops init
teraflops plan
change any nix config used in teraflops
teraflops plan
find detected config reflects cache rather than changes

i'm terribly sorry @KiaraGrouwstra ... i'm going to need to you provide a concrete example - something in my brain isn't clicking :sweat:
i started with this flake.nix:
{
  inputs = {
    teraflops.url = "github:aanderse/teraflops";
    teraflops.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = { nixpkgs, teraflops, ... }:
    let
      system = "x86_64-linux";

      pkgs = nixpkgs.legacyPackages.${system};

      # NOTE: this is a workaround while opentofu support is being improved in nixpkgs... see https://github.com/NixOS/nixpkgs/issues/283015 for details
      tofuProvider = provider:
        provider.override (oldArgs: {
          provider-source-address =
            pkgs.lib.replaceStrings
              [ "https://registry.terraform.io/providers" ]
              [ "registry.opentofu.org" ]
              oldArgs.homepage;
        });
    in
    {
      devShells.${system}.default = with pkgs;
        mkShell {
          pname = "teraflops-virtualbox";

          packages = [
            colmena
            jq
            (opentofu.withPlugins (p: map tofuProvider [ p.tls p.virtualbox ]))
            teraflops.packages.${system}.default
          ];
        };
    } // {
      teraflops = {
        imports = [ teraflops.modules.virtualbox ];

        meta = {
          nixpkgs = nixpkgs.legacyPackages.${system};
        };

        defaults = { config, ... }: {
          deployment.targetEnv = "virtualbox";
          deployment.virtualbox = {
            cpus = 2;
            memory = "1.0 gib";
          };

          system.stateVersion = "24.05";
        };

        machine = { pkgs, ... }: {
          environment.systemPackages = [ pkgs.hello ];
        };
      };
    };
}

i ran teraflops init
when i ran teraflops plan i got what i expected:
OpenTofu will perform the following actions:

  # tls_private_key.teraflops will be created
  + resource "tls_private_key" "teraflops" {
      + algorithm                     = "ED25519"
      + ecdsa_curve                   = "P224"
      + id                            = (known after apply)
      + private_key_openssh           = (sensitive value)
      + private_key_pem               = (sensitive value)
      + private_key_pem_pkcs8         = (sensitive value)
      + public_key_fingerprint_md5    = (known after apply)
      + public_key_fingerprint_sha256 = (known after apply)
      + public_key_openssh            = (known after apply)
      + public_key_pem                = (known after apply)
      + rsa_bits                      = 2048
    }

  # virtualbox_vm.machine will be created
  + resource "virtualbox_vm" "machine" {
      + cpus   = 2
      + id     = (known after apply)
      + image  = "/nix/store/570y6v70xkfb81zqs1zwcds2z83gzlzw-nixos-ova-24.05pre-git-x86_64-linux/nixos-24.05pre-git-x86_64-linux.ova"
      + memory = "1.0 gib"
      + name   = "machine"
      + status = "running"

      + network_adapter {
          + device                 = "IntelPro1000MTServer"
          + host_interface         = "vboxnet0"
          + ipv4_address           = (known after apply)
          + ipv4_address_available = (known after apply)
          + mac_address            = (known after apply)
          + status                 = (known after apply)
          + type                   = "hostonly"
        }
    }

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

then i added the following configuration to flake.nix in the teraflops section:
        machine2 = { pkgs, ... }: {
          environment.systemPackages = [ pkgs.hello ];
        };

again, when i ran teraflops plan i got what i expected:
OpenTofu will perform the following actions:

  # tls_private_key.teraflops will be created
  + resource "tls_private_key" "teraflops" {
      + algorithm                     = "ED25519"
      + ecdsa_curve                   = "P224"
      + id                            = (known after apply)
      + private_key_openssh           = (sensitive value)
      + private_key_pem               = (sensitive value)
      + private_key_pem_pkcs8         = (sensitive value)
      + public_key_fingerprint_md5    = (known after apply)
      + public_key_fingerprint_sha256 = (known after apply)
      + public_key_openssh            = (known after apply)
      + public_key_pem                = (known after apply)
      + rsa_bits                      = 2048
    }

  # virtualbox_vm.machine will be created
  + resource "virtualbox_vm" "machine" {
      + cpus   = 2
      + id     = (known after apply)
      + image  = "/nix/store/570y6v70xkfb81zqs1zwcds2z83gzlzw-nixos-ova-24.05pre-git-x86_64-linux/nixos-24.05pre-git-x86_64-linux.ova"
      + memory = "1.0 gib"
      + name   = "machine"
      + status = "running"

      + network_adapter {
          + device                 = "IntelPro1000MTServer"
          + host_interface         = "vboxnet0"
          + ipv4_address           = (known after apply)
          + ipv4_address_available = (known after apply)
          + mac_address            = (known after apply)
          + status                 = (known after apply)
          + type                   = "hostonly"
        }
    }

  # virtualbox_vm.machine2 will be created
  + resource "virtualbox_vm" "machine2" {
      + cpus   = 2
      + id     = (known after apply)
      + image  = "/nix/store/570y6v70xkfb81zqs1zwcds2z83gzlzw-nixos-ova-24.05pre-git-x86_64-linux/nixos-24.05pre-git-x86_64-linux.ova"
      + memory = "1.0 gib"
      + name   = "machine2"
      + status = "running"

      + network_adapter {
          + device                 = "IntelPro1000MTServer"
          + host_interface         = "vboxnet0"
          + ipv4_address           = (known after apply)
          + ipv4_address_available = (known after apply)
          + mac_address            = (known after apply)
          + status                 = (known after apply)
          + type                   = "hostonly"
        }
    }

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

again, sorry for the hassle... but i really appreciate you finding issues and reporting!


Announce IPFS companion releases on the ipfs.io blog?

...would be rad and maybe get more people using it
👍 👎 @diasdavid?

💯 👍

You do awesome release notes @lidel how do you feel about submitting a PR to https://github.com/ipfs/blog at the same time?

Neat idea! I'll do that, starting with next release.
(With additional gifs and more exciting twist than regular RN, of course 🙃 )

PR Announcing IPFS Companion 2.2.0 is waiting to be merged: https://github.com/ipfs/blog/pull/156


Preview: implement concurrency to avoid map-pool exhaustion in renderer

I'd rather have a concurrent queue to deal with this

I've checked a couple of modules to achieve that, I did not like them so much...


OSSM-3314: Fix test of integration with cert-manager-istio-csr

I will revert changes in smcp templates etc. when the pr will be approved, because in case of request for changes, I will need a way to run tests efficiently.


[CUTLASS] Initial support for conv2d wgrad

Add support for offloading conv2d_backward_weight op to cutlass. Note that, since in wgrad the K dimension of the implicit GEMM is very large (N * P * Q), split-k is required for reasonable performance. I've already implemented split-k support as well, but sending basic wgrad support first. This includes layout conversion for conv2d_backward_weight, pattern matching, codegen and test cases.
The key diff in this PR is the introduction of the accumulation data type, which is now separate from output type. Since wgrad requires fp32 accumulation in practice, even if the output is fp16 we always accumulate in fp32. Note that cuDNN also supports only fp32 accum + fp16 output for wgrad. For GEMM and other conv2d ops, the accumulation type is set to the output dtype for now.
Also fixes the bug of conv2d_backward_weight not supporting depth wise conv2d as reported in https://github.com/apache/tvm/commit/fd5915a098f419f1d6ac0ee8c78d3a364f56a163#commitcomment-64547258
@comaniac @Laurawly

thanks @comaniac


[Bug]Generator using fromUnixTimeSeconds for unixTimestamp with int64

Describe the issue or request
When defining the createTime as @encode(DateTimeKnownEncoding.unixTimestamp, int64) in TypeSpec, the generator uses FromUnixTimeSeconds.
However, in the service use case, the createTime is in milliseconds. So an error for out-of-range is raised.

Here is the sample for createTime/updateTime.

Describe your ideas for solutions
Please describe how you think a change or changes might work. Consider
how these changes might work for multiple services.
Add labels
As appropriate, select a label to describe how hard the issue is to work
around or how hard it would be to do without a particular feature that
could help make it easier. These labels start with "workaround".
Also select a label that describes how many instances of the workaround
you would have to do without the bug being fixed or feature implemented.
These labels start with "instances".
These labels will help priority bug fixes and feature requests.
If this bug or feature request is for older versions of autorest, please
remove the v3 label and add the v2 label as appropriate.

We are calling the wrong method all day along: https://github.com/Azure/autorest.csharp/blob/fa9971f668a6d5f4c0c88b20b55b3dc5812c4bca/src/AutoRest.CSharp/Common/Output/Builders/JsonSerializationMethodsBuilder.cs#L1154

I'm pretty sure it is milliseconds.  TypeSpec is heavily influenced by JavaScript, and the JS Date object uses milliseconds since the epoch.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

@ArcturusZhang: If this is a simple fix to call FromUnixTimeMilliseconds() instead of FromUnixTimeSeconds(), could this be fixed quickly, so the spec doesn't need to apply a workaround?

@bterlson, this was intended as seconds, not milliseconds, right?

@johanste, @bterlson: Best issue for discussion is here: https://github.com/microsoft/typespec/issues/2887

@ArcturusZhang: Per discussion in https://github.com/microsoft/typespec/issues/2887, it seems that the intention of DateTimeKnownEncoding.unixTimestamp in TypeSpec was seconds since epoch, so autorest.csharp is correct.

@ArcturusZhang: Per discussion in microsoft/typespec#2887, it seems that the intention of DateTimeKnownEncoding.unixTimestamp in TypeSpec was seconds since epoch, so autorest.csharp is correct.

So I bring this up because of being afraid there would be debates like this because it is really unclear on typespec documents, and different person with different background would have different comprehension on the work "unix timestamp". My first thought is that this is "seconds".
Service teams (slash typespec authors) might also have the same confusion depending on their background - therefore this is really ambiguous.
Please make sure we clarify that enough
Currently dotnet generator will not change since it is the correct intention. If we do need a change, it is really simple, just replace the method we are using from DateTimeOffset.FromUnixSeconds to FromUnixMilliseconds.

Close this because our current behavior is correct

@ArcturusZhang: Per discussion in microsoft/typespec#2887, it seems that the intention of DateTimeKnownEncoding.unixTimestamp in TypeSpec was seconds since epoch, so autorest.csharp is correct.

So I bring this up because of being afraid there would be debates like this because it is really unclear on typespec documents, and different person with different background would have different comprehension on the work "unix timestamp". My first thought is that this is "seconds".
Service teams (slash typespec authors) might also have the same confusion depending on their background - therefore this is really ambiguous. Please make sure we clarify that enough Currently dotnet generator will not change since it is the correct intention. If we do need a change, it is really simple, just replace the method we are using from DateTimeOffset.FromUnixSeconds to FromUnixMilliseconds.

If you have any more feedback not already captured https://github.com/microsoft/typespec/issues/2887, please add it to that issue.


Clean up plotting of resonance circles

Add marker size and fontsize arguments
Add downsampling arguments for data plotting
Remove filename from title
Next step is change directory naming scheme
Remove initial guess circle from plotting
Plot fit over full data range
Change color schemes in plots
Next step would be to further cleanup
Make other cosmetic changes

I'm trying to compare the plots from this pull request and the main branch, but there seems to be a bug. I'm using the Rigetti resonator at 5.4GHz (RGREF01_01) and I receive the error:

/Users/coreyraemcrae/Documents/GitHub/measurement/venv/lib/python3.7/site-packages/lmfit/confidence.py:39: RuntimeWarning: divide by zero encountered in double_scalars
return f.cdf(dchi * nfree / nfix, nfix, nfree)

I think that can be attributed to line 1311 (main) / 1349 (pull request) for DCM, and/or associated lines in other fit method sections in the code:

ci = lmfit.conf_interval(minner, result, p_names=['Q','Qc','phi','w1'], sigmas=[2])

Thoughts on addressing this?


Dataview Query Not Working After Following Movie Database Creation Guide

Bug Description
I followed the guide on creating the movie database at https://minimal.guide/Guides/Create+a+movie+database. Still, the dataview query does not provide posters or movie information and instead keeps showing "Dataview: No results to show for table query."
 Issues here are for the theme itself.


LibreOffice install failed at extract

Here is what I got
> scoop install libreoffice-fresh
WARN  Scoop uses 'aria2c' for multi-connection downloads.
WARN  Should it cause issues, run 'scoop config aria2-enabled false' to disable it.
Installing 'libreoffice-fresh' (<IP_ADDRESS>) [64bit]
Loading LibreOffice_<IP_ADDRESS>_Win_x64.msi from cache.
Checking hash of LibreOffice_<IP_ADDRESS>_Win_x64.msi ... ok.
Extracting LibreOffice_<IP_ADDRESS>_Win_x64.msi ... Could not find 'LibreOffice'! (error 16)
At C:\Users\User\scoop\apps\scoop\current\lib\core.ps1:510 char:9
+         throw "Could not find '$(fname $from)'! (error $($proc.ExitCo ...
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (Could not find 'LibreOffice'! (error 16):String) [], RuntimeException
    + FullyQualifiedErrorId : Could not find 'LibreOffice'! (error 16)

Duplicate of lukesampson/scoop-extras#3869


Could Not Drop Air

Not sure how this happened but I got this error about a minute before my server crashed
https://pastebin.com/g09nUgGs

Not sure what is causing this (some world rule that is changing block drops?) but I will have a fix in for the next release.


Auto corrected by following Lint Ruby Layout/HeredocIndentation

Auto corrected by following Lint Ruby Layout/HeredocIndentation
Click here to configure it on awesomecode.io

Coverage remained the same at 96.801% when pulling 4406a0ddd7d9cf6939ad39539a09673dbfbb71e2 on awesomecode-lint-ruby-layout-heredocindentation-48016 into 22ecfa4bd363433d74aa04fa34c03f124f91425e on master.

Coverage remained the same at 96.801% when pulling 4406a0ddd7d9cf6939ad39539a09673dbfbb71e2 on awesomecode-lint-ruby-layout-heredocindentation-48016 into 22ecfa4bd363433d74aa04fa34c03f124f91425e on master.


Runtime Protocol API Reference -- alternative review method if PR method isn't practical

title: Runtime protocol API reference
sidebar_position: 5

NOTE: Draft in progress

Add examples

Introduction
Marlowe Runtime is the application backend for managing Marlowe contracts on the Cardano blockchain.
The term "Runtime" refers to the whole system, its components and sub-components.
Runtime and its protocols and sub-protocols communicate with one another to enable Runtime's core functions, which are discovering and querying on-chain Marlowe contracts, and creating Marlowe transactions.
The Runtime API protocol enables communicating with Runtime directly.
The Marlowe Runtime protocol API defines everything you can do with the Runtime.
Anything that can't be done through these protocols can't be done with the Runtime.
These protocols, and specifically this root-level Marlowe protocol, is the primary API for the Runtime.
If you want to communicate with the Runtime, ultimately, you will be using the Marlowe protocol and its sub-protocols.
In the larger context of working with Runtime, you don't necessarily need to be aware of the protocols to be able to communicate with the Runtime.
For example, if you are using the REST API, Runtime CLI or Marlowe CLI, under the hood, they all communicate with the Runtime using this protocol, as does everything that communicates with the Runtime.
Intended audience
This document is intended for developers who are writing client applications that interact with the Runtime.
You may be writing scripts, command-line tools, servers for DApps that communicate with the Runtime, or something similar.
If you don't want to use the REST API, Runtime CLI or Marlowe CLI, or any other intermediary, but instead want to connect directly to the TCP socket that the Runtime exposes, this document is a useful reference because it describes the behavior and syntax of these protocols, their states and messages.
Key concepts

Concepts
Description

Peer Role
The peer role is either server or client. All protocol sessions take place between two peers -- one server and one client.

Protocol State
A description of the current state of a protocol session.

Peer Agency
Describes which peer role is able to send messages to the other in a given protocol state. Agency is exclusive (either server or client has agency, never both). When one peer is able to send a message to the other peer, it has agency. When a peer is in a state of only being able to receive a message, we say it does not have agency.

Messages
Packets of data that a peer can send to another peer when it has agency. When a message is sent, that event transitions the protocol state from one state to another state.

About messages and agency
Certain message types are only available from certain states, and when a peer sends a message to the other peer, it changes the state of the protocol, potentially changing the peer agency as well.
In the majority of cases, agency alternates when a peer sends a message to the other peer.
For example, the client will send a message to the server, then the server will gain agency.
Then the server sends a message back to the client and the client will gain agency again.
There are some cases in which one peer will send multiple messages and keep agency between them, but for the most part it is a back and forth process.
Marlowe protocol
The top-level protocol is the Marlowe protocol. It is defined here:

https://github.com/input-output-hk/marlowe-cardano/blob/main/marlowe-runtime/proxy-api/Language/Marlowe/Protocol/Types.hs

Four sub-protocols
The Marlowe protocol consists of four sub-protocols:

Marlowe Sync
Marlowe Header Sync
Marlowe Query
Tx Job

Client starts session
The Client starts a session by sending a message to the server saying which sub-protocol it intends to communicate with, then a protocol session for the sub-protocol begins.
Marlowe protocol states
At any given time, the Marlowe protocol can be in one of five states:

Init
MarloweSync
MarloweHeaderSync
MarloweQuery
TxJob

There is an init state, then there is one protocol state per sub-protocol.
These states transition in a fairly straightforward manner.
The protocol starts in the init state, and then via one of the message types, it will transition into either the MarloweSync, the MarloweHeaderSync, the MarloweQuery or the TxJob state.
Once in that protocol state, the protocol stays there for the rest of the session, communicating in that protocol.
Descriptions of the Marlowe protocol states

Marlowe protocol state
Description

1. Init
The initial state.

Client has agency.

2. MarloweSync
The peers are communicating via the MarloweSync sub-protocol.

Agency depends on sub-protocol.

Associated data: a MarloweSync sub-protocol state.

3. MarloweHeaderSync
The peers are communicating via the MarloweHeaderSync sub-protocol.

Agency depends on sub-protocol.

Associated data: a MarloweHeaderSync sub-protocol state.

4. MarloweQuery
The peers are communicating via the MarloweQuery sub-protocol.

Agency depends on sub-protocol.

Associated data: a MarloweQuery sub-protocol state.

5. TxJob
The peers are communicating via the TxJob sub-protocol.

Agency depends on sub-protocol.

Associated data: a TxJob sub-protocol state.

Eight message types
There are eight message types in the Marlowe protocol.
Each of them, described below, has a message type that is a carrier for that sub-protocol.
For example, the MsgMarloweSync message type embeds a message from the sub-protocol in the Marlowe protocol.

Message
Description

1. MsgRunMarloweSync
Choose to communicate via MarloweSync.

Available from Init.

Transitions to MarloweSync.

2. MsgRunMarloweHeaderSync
Choose to communicate via MarloweHeaderSync.

Available from Init.

Transitions to MarloweHeaderSync.

3. MsgRunMarloweQuery
Choose to communicate via MarloweQuery.

Available from Init.

Transitions to MarloweQuery.

4. MsgRunTxJob
Choose to communicate via TxJob.

Available from Init.

Transitions to TxJob.

5. MsgMarloweSync
Send a MarloweSync message.

Available from MarloweSync (with sub state st).

Transitions to MarloweSync (with sub state determined by the payload message).

Payload: A MarloweSync message (available from sub state st).

6. MsgMarloweHeaderSync
Send a MarloweHeaderSync message.

Available from MarloweHeaderSync (with sub state st).

Transitions to MarloweHeaderSync (with sub state determined by the payload message).

Payload: A MarloweHeaderSync message (available from sub state st).

7. MsgMarloweQuery
Send a MarloweQuery message.

Available from MarloweQuery (with sub state st).

Transitions to MarloweQuery (with sub state determined by the payload message).

Payload: A MarloweQuery message (available from sub state st).

8. MsgTxJob
Send a TxJob message.

Available from TxJob (with sub state st).

Transitions to TxJob (with sub state determined by the payload message).

Payload: A TxJob message (available from sub state st).

Binary format for sending messages over TCP
Use the binary format for the Marlowe protocol to send messages over TCP.
The binary format describes how each message type is converted into binary data, then read and decoded.

Jamie will write this up.

Messaging behavior
On a functional level, the Marlowe protocol multiplexes the four sub-protocols into one.
The client always sends one of these four message types (MsgRunMarloweSync, MsgRunMarloweHeaderSync, MsgRunMarloweQuery, MsgRunTxJob) to start.
Depending on which one it started the session with, it will then continuously send that message type between client and server.
If it starts with MsgRunMarloweSync, the client and server will then just exchange MsgMarloweSync messages back and forth.
Inside each of those is a message from the underlying MarloweSync protocol.
When finished, it disconnects and the session is over.
About the Haskell source files
There is a data structure in the Haskell source files that describes the different states of the protocol.
There is a message type that shows what all the available messages are for that protocol.
Each message indicates the initial state of the message.
For example, MsgRunMarloweSync starts in the state StInit, then transitions into the MarloweSync.StInit state.
1. MarloweSync sub-protocol
The MarloweSync sub-protocol is defined here:

https://github.com/input-output-hk/marlowe-cardano/blob/main/marlowe-runtime/history-api/Language/Marlowe/Protocol/Sync/Types.hs

For example, for MsgMarloweSync, the data you can put in there is one of the messages from the Marlowe Sync protocol.
Every message from the Marlowe Sync protocol is contained inside this message type.
Sub-protocol states
Init
Follow
Done
Idle
Next
Wait
Intersect
Messages
MsgFollowContract
MsgIntersect
MsgContractNotFound
MsgContractFound
MsgDone
MsgRequestNext
MsgRollForward
MsgRollBackward
MsgRollBackCreation
MsgWait
MsgPoll
MsgCancel
MsgIntersectFound
MsgIntersectNotFound
2. MarloweHeaderSync sub-protocol
The MarloweHeaderSync sub-protocol is defined here:

https://github.com/input-output-hk/marlowe-cardano/blob/main/marlowe-runtime/discovery-api/Language/Marlowe/Protocol/HeaderSync/Types.hs

The MarloweHeaderSync sub-protocol is used to synchronize contract creation transactions.
The client receives a stream of blocks, each of which contains one or more "contract header(s)".
A contract header contains minimal information about a transaction that creates a new Marlowe contract.
This is like the "subscribe to all of the contracts" protocol.
This is what you would use to stay synchronized with the contracts on-chain.
As the chain advances, and as new contracts are found, it will deliver them to the client.
Sub-protocol states

Sub-protocol state
Description

1. Idle
The initial state.

Client has agency.

2. Intersect
When the client asks the server to fast-forward to a known chain point.

Server has agency.

3. Next
When the client asks the server to provide the next block of contract headers.

Server has agency.

4. Wait
When the server has no more blocks to send (i.e., the client has reached the tip of the chain).

Client has agency.

5. Done
The terminal state.

Nobody has agency.

The Intersect state
The intersect is when the client asks the server to fast forward to a known chain point.
For example, in a situation where the client has already done a fair amount of synchronization, and then quits, when it starts up again, rather than starting over from the beginning of the chain, it can instead start from the point where it last left off.
The Intersect is the server recognizing a point that both it and the client know about, then starting from there.
On the other hand, if the server does not or cannot recognize what the client is referencing, it will start from the beginning of the chain (from genesis).
MarloweHeaderSync sub-protocol messages

Sub-protocol messages
Attributes/Description

1. RequestNext
Available from: Idle.

Transitions to: Next

Description: The client requests the next block of headers from the server.

2. NewHeaders
Available from: Next

Transitions to: Idle

Payload:

[0]: A block header (the block to which the server has advanced the client)

[1]: A list of contract headers that appear in that block. The typical synchronization loop behavior is that the client sends a request, next; the server sends new headers, then goes back into idle; the client sends another request next; the server sends new headers; the client continues to grab more headers from the server one block at a time until it catches up to the tip, when the server says wait. As the tip keeps getting extended with new blocks, the client has to pull new information and the cycle continues.

Description: The server sends the next block of headers to the client.

3. RollBackward
Available from: Next

Transitions to: Idle

Payload: Chain point (either a block header or Genesis if the chain has rolled all the way back to Genesis).

Description: The client's current position was rolled back, the server tells the client of the point to which it was rolled back.

4. Wait
Available from: Next

Transitions to: Wait

Description: The client is at the chain tip. There are no more Marlowe contract headers to send. The client may choose to wait and poll until more are available.

5. Poll
Available from: Wait

Transitions to: Next

Description: The client is checking with the server to find out if there are new headers available.

6. Cancel
Available from: Wait

Transitions to: Idle

Description: The client doesn't wish to wait, and returns to the idle state. Usually, when you send a cancel, in nearly all cases, it is followed by a done message. This is the case for clients that are only concerned about getting everything that is currently on the chain. Once that point is reached, when it reaches the tip, it communicates done.

7. Done
Available from: Idle

Transitions to: Done

Description: The client disconnects from the server.

8. Intersect
Available from: Idle

Transitions to: Intersect

Payload: A list of block headers in ascending order. It is a list because the client may be communicating with the server. These block headers represent the most recent blocks that the client has. It sees the last header that it sees after it detaches. The server might pull that block back. There is a chance that the client will send the most recent block and the server won't recognize it. Instead we allow the client to send a list of blocks. The server tries to find the most recent one that it also knows about, a mutually known reference point where it begins syncing from.

Description: The client tells the server which blocks it has already seen so that the server can start syncing from an appropriate point in the chain.

9. IntersectFound
Available from: Intersect

Transitions to: Idle

Payload: A block header (the most recent point the server has in common with the client).

Description: The server has found an intersection point with the client and will start syncing after this point (i.e., the next NewHeaders message will be after this block).

10. IntersectNotFound
Available from: Intersect

Transitions to: Idle

Description: The server was unable to find an intersection point with the client and will start syncing from Genesis.

3. MarloweQuery sub-protocol
The MarloweQuery sub-protocol is defined here:

https://github.com/input-output-hk/marlowe-cardano/blob/main/marlowe-runtime/sync-api/Language/Marlowe/Protocol/Query/Types.hs

Sub-protocol states
ReqContractHeaders
ReqContractState
ReqTransaction
ReqTransactions
ReqWithdrawal
ReqWithdrawals
ReqBoth
MarloweQuery sub-protocol messages
TO DO
4. TxJob sub-protocol
The TxJob protocol is defined in two places. It is an instance of the generic Job protocol, which is a protocol that allows jobs to be run and their progress to be monitored. But it leaves abstract, what are the jobs and the commands that are available. In Marlowe Tx we have a specific set of commands that can be run.
The TxJob sub-protocol is defined here:

marlowe-runtime/tx-api/Language/Marlowe/Runtime/Transaction/Api.hs

The MarloweTxCommand type describes the available commands for marlowe-tx.

It is also defined in marlowe-protocols/src/Network/Protocol/Job/Types.hs

Defines the generic job protocol (command agnostic).

Sub-protocol states
TO DO
TxJob sub-protocol messages
TO DO

This issue is no longer needed. This item has been addressed.


Unable to delete mig namespace/other objects (authorization issue)

After performing migrations, I'm unable to delete either the mig namespace, migplans or migclusters via oc commands, they block and never return:
[root@jenkins-me:~/ansible/dev/mig-ci/mig-e2e] (master %=)# oc -n mig delete migplans local-images-migplan-1564086899
migplan.migration.openshift.io "local-images-migplan-1564086899" deleted

Unlike when trying to delete the namespace, with an attempted migplan delete we can still see the controller logs errors :
E0725 22:43:38.095514       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0725 22:43:39.096983       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0725 22:43:40.098480       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0725 22:43:41.104789       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0725 22:43:42.106185       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope

I checked the mig:default SA is actually is present in the role-binding to manager-role :
oc describe clusterrolebindings manager-rolebinding
Name:         manager-rolebinding
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","metadata":{"annotations":{},"name":"manager-rolebinding","namespace":""},"rol...
Role:
  Kind:  ClusterRole
  Name:  manager-role
Subjects:
  Kind            Name     Namespace
  ----            ----     ---------
  ServiceAccount  default  mig

During a namespace delete, these are the remaining objects on the NS :
oc get project | grep mig
mig                                                                    Terminating

 oc api-resources --verbs=list --namespaced -o name | xargs -n 1 oc get --show-kind --ignore-not-found -n mig
NAME                                                 AGE
migcluster.migration.openshift.io/migcluster-local   95m
NAME                                                             AGE
migplan.migration.openshift.io/local-images-migplan-1564099667   91m
migplan.migration.openshift.io/nfs-pv-migplan-1564099667         87m
migplan.migration.openshift.io/stateless-migplan-1564099667      95m
NAME                                                          CATALOG         AGE
packagemanifest.packages.operators.coreos.com/packageserver   OLM Operators   128m

I've also tried force deleting the NS but it also blocks and never returns :
oc delete project mig --force=true --grace-period=0
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
project.project.openshift.io "mig" force deleted

So far the only thing that has worked to release the namespace has been editing all remaining objects and removing the finalizers from metadata , see sample below :
oc get project | grep mig
mig                                                                    Terminating
oc -n mig edit migplan.migration.openshift.io/nfs-pv-migplan-1564099667
migplan.migration.openshift.io/nfs-pv-migplan-1564099667 edited
 oc -n mig edit migplan.migration.openshift.io/stateless-migplan-1564099667
migplan.migration.openshift.io/stateless-migplan-1564099667 edited
 oc get project | grep mig
$

I'm not sure if the two are related at this point, the RBAC error logs and the finalizers but I wanted to point out both since I noticed the controller appears to start creating tons of those messages after a delete is issued.
Mig controller was deployed using scripts from :
https://github.com/fusor/mig-controller/tree/master/hack/deploy
The cluster hosting the controller is OCP 4.1, using latest images.
In any case, the deletions block indefinitely and never return.
Steps to reproduce :

Deploy mig-controller using scripts
Perform migrations
Attempt to delete mig namespace, migplans or migclusters

@jortel @jmontleon I just confirmed they are related, the moment I issue a deletion, the controller logs get flooded with the RBAC messages :
[root@jenkins-me:~/ansible/dev/mig-ci] (avoid_create_mig_ns %=)# oc -n mig delete migplan stateless-migplan-1564148225
migplan.migration.openshift.io "stateless-migplan-1564148225" deleted

E0726 13:44:38.684426       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0726 13:44:39.686245       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0726 13:44:40.693292       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0726 13:44:41.697335       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope
E0726 13:44:42.698899       1 reflector.go:134] sigs.k8s.io/controller-runtime/pkg/cache/internal/informers_map.go:196: Failed to list *v1.Deployment: deployments.apps is forbidden: User "system:serviceaccount:mig:default" cannot list resource "deployments" in API group "apps" at the cluster scope

This will affect closing a plan as well.

Pretty sure this was fixed by: https://github.com/fusor/mig-operator/pull/40.
@fbladilo Is this still an issue? Can it be closed?


adding Replay

Current coverage is 98.76% (diff: 95.00%)

Merging #17 into master will decrease coverage by 1.23%

@@           master        #17   diff @@
========================================
  Files           7          8     +1
  Lines          64         81    +17
  Methods         0          0
  Messages        0          0
  Branches        0          0
========================================
+ Hits           64         80    +16
- Misses          0          1     +1
  Partials        0          0

Powered by Codecov. Last update 828975f...7bcac7b


Update ESP-IDF submodule to fix type conflict for transaction_cb_t

Description
Including spi.h and i2c.h in same source file creates type conflicts as both use transaction_cb_t for callbacks.
transaction_cb_t is changed to i2c_transaction_cb_t in i2c.h
Fixes issue reported in https://github.com/aws/amazon-freertos/issues/2650.
This change is tested by running common-io tests for i2c module.
Checklist:

[x] I have tested my changes. No regression in existing tests.
[x] My code is Linted.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks


Update regex to support composite file names

Fixes bug introduced in #37

Can you move all tests into a test folder?


deallocation support for DispatchData on Linux

Deallocation / reference counting support for DispatchData
in the wrapping overlay consisting of two main pieces.
First, since DispatchData is a struct and dispatch_data_t is
a COpaquePointer, we need an intermediate class __DispatchData
on which to perform the reference counting operations to enable
the backing _dispatch_data_t to be deallocated when they are no
longer reachable.  I overlooked the mapping of _dispatch_data_t
to OS_dispatch_data in Dispatch.apinotes in my initial pull request
for the wrapping overlay and as a result all the dispatch_data_t
instances were not being reference counted.
Second, enable the DispatchData.Deallocator portion of the API.
After some experimentation, found a way to have the desired API
without getting a reference to _TMBO in the generated code.
Left a FIXME because the current approach is sub-optimal in where
it converts from Swift blocks to @convention(block) blocks.

@mwwa to review

I think we can merge this.


BFormCheckbox with v-model not working

Description
straight example from documentation also does not work. I am using options API.
Parent Component
Steps to reproduce the behavior:

        Switch Checkbox (Checked: {{ switchChecked }})

Screenshots

Way around is i had to use explicit binding using

          Switch Checkbox (Checked: {{ switchChecked }})

I also had similar experience using other components v-model does not work in my use case.

I tried with
<template>

    Switch Checkbox (Checked: {{ switchChecked }})

  Click me
</template>

<template>

      <v-col>

          Switch Checkbox (Checked: {{ switchChecked }})

      </v-col>

</template>

And was unable to replicate the checkbox not working. Soon I will be updating the checkbox and other similar components to match more closely with Bootstrap-vue with this issue https://github.com/cdmoro/bootstrap-vue-3/issues/813 . But your issue seems unrelated.

@VividLemon Thanks for the feedback i got the issue in my case as i was using  Vue migration tools to migrate my Vue 2 project to Vue 3 that was the culprit as iwaas running it in Vue2 mode after running it independently on Vue 3 everything works fine, So i am closing the issue.


Unable to pull 'my repos' after logging into Kitematic

Expected behavior
pull private repo
Actual behavior
This error
Information about the Issue
Upgraded from toolbox to latest windows hyper-v
Steps to reproduce the behavior
simply try to recover private repository.

I have a few private repos and have been able to pull from them without any issues.
Do you get any errors?


The Terminal panel is always opened on the first launch

Type: Bug
Hey,
I noticed that since the release 1.73 the terminal panel on the bottom is always opened whenever I launch VSCode for the first time after booting the OS and every time I have to close it with mouse because the keyboard command to show/hide terminal panel is ignored. Is there any configuration flag which commands to hide it by default?
Steps to reproduce:

Launch VSCode for the first time

The terminal panel is opened by default (screenshot bellow for reference)

Press your keyboard combination for the command "View: Toggle Terminal"

The command is ignored

Take your mouse and click the cross to close the panel

Press again your keyboard combination for the command "View: Toggle Terminal"

Now it mysteriously works as expected

Thanks
VS Code version: Code 1.73.1<PHONE_NUMBER>f055b99068d3688932416f2346dd3b, 2022-11-09T02:22:48.959Z)
OS version: Darwin arm64 22.1.0
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
2, 2, 1

Memory (System)
16.00GB (0.37GB free)

Process Argv

Screen Reader
no

VM
0%

Seems its already fixed in vscode insiders as I cannot repro there

Can you please check disabling all extensions and reproduce it?

Can you please check disabling all extensions and reproduce it?

Alright, I turned them off all together and turned on one by one and now the bug just disappeared.
I don't know what to add to my complains. If you feel ok with this strange behaivour you may close this ticket.
Thanks for the help.

Ok weird. Closing it for now because there are no consistent steps to repro. Please reopen and provide steps and necessary info when you see it again. Thanks.


Adding Hindi translation

@iamrajiv Can you explain what I have to do I this issue?

@iamrajiv Hi can I work on this?

@ShubhamSood1406 @Aarush-Goyal I am working on it and have already made PR #3165 on this.

Not an valid issue, closing this

Is this issue valid?

Can I work on this?

@gargeesuresh PR has been raised by the Rajiv and its under review.


⚠ Minetest Wiki (for comparison against mirror) has degraded performance

In f868d10, Minetest Wiki (for comparison against mirror) (https://wiki.minetest.net/Main_Page) experienced degraded performance:

HTTP code: 200
Response time: 2310 ms

Resolved: Minetest Wiki (for comparison against mirror) performance has improved in c9d00fb after 15 minutes.


Enable post code location search

Im trying to search for my location but there are multiple places in my country with the same name, searching for a post code would make this significantly easier.
for example, i have to search xxx, england, uk
and there are multiple places with that name - i dont know which one to select
seaching for AB12 3CD would be much quicker easier

Can you find your location here:
https://open-meteo.com/en/docs/geocoding-api
There is no zip code option for this provider.

Can you find your location here: https://open-meteo.com/en/docs/geocoding-api
There is no zip code option for this provider.

I've found my location on there, thank you
Im not sure how to transfer that into the weather app though


Added the Follow us section of Social Media links also Changed the Footer Section Appearance

Added the Follow us section of Social Media links
(BEFORE)

(AFTER)

ALSO, CHANGED THE FOOTER SECTION APPEARANCE
(BEFORE)

(AFTER)

@tushargupta1504 plz merge my pull request and add the LABLES to my pull request

@tushargupta1504 lease assign it LEVEL2 label

@tushargupta1504 Please Reopen this Pull Request I will Solve this Conflicts


Fix login help link with CSP

Using an href value of javascript:; doesn't work with the CSP values used in #3354, causing the same errors as in #3581
If we weren't in Blazor, we'd just use href="#". But that doesn't work here (it'll actually route to /# and try to navigate). Setting the href to the current URL doesn't cause the page to navigate and avoids the CSP errors, so this PR changes it to that.
Microsoft Reviewers: Open in CodeFlow

/backport to release/8.0


const/type Cannot find name '***'

Doesn't look related to this repo since you've set up your own path mapping. If anything it's a TypeScript bug.


Update source-map

@jakubpawlowicz: just opening an issue to track this. Note that there is a 0.4.0 out at the time of writing.

:+1: yup, they changed matching (?) algorithm in 0.3 so I need to figure out what's going on! https://github.com/mozilla/source-map/blob/master/CHANGELOG.md#030


tls: failed to verify certificate: x509: certificate has expired or is not yet valid

[2024-05-19 21:38:07.668] [info]  past logs was deleted for new connection.
[2024-05-19 21:38:07.672] [info]  ------------------------MetaData------------------------
[2024-05-19 21:38:07.673] [info]  running on: win32 10.0.19045 x64
[2024-05-19 21:38:07.674] [info]  at od: 0.10.8-beta
[2024-05-19 21:38:07.675] [info]  at wp: v1.2.3
[2024-05-19 21:38:07.676] [info]  ls assets/bin: LICENSE,README.md,vbs,warp-plus.exe
[2024-05-19 21:38:07.677] [info]  method: gool
[2024-05-19 21:38:07.678] [info]  proxyMode: true
[2024-05-19 21:38:07.679] [info]  endpoint: default
[2024-05-19 21:38:07.679] [info]  license: false
[2024-05-19 21:38:07.680] [info]  exe: C:\Program Files\Oblivion Desktop\Oblivion Desktop.exe
[2024-05-19 21:38:07.681] [info]  userData: C:\Users<USERNAME>\AppData\Roaming\oblivion-desktop
[2024-05-19 21:38:07.684] [info]  logs: C:\Users<USERNAME>\AppData\Roaming\oblivion-desktop\logs
[2024-05-19 21:38:07.684] [info]  ------------------------MetaData------------------------
[2024-05-19 21:38:07.698] [info]  starting wp process...
[2024-05-19 21:38:07.698] [info]  C:\Users<USERNAME>\AppData\Roaming\oblivion-desktop\warp-plus.exe --bind <IP_ADDRESS>:7890 --gool --scan --rtt 1s
[2024-05-19 21:38:07.715] [info]  trying to set system proxy...
[2024-05-19 21:38:07.724] [info]  Routing Rules: Default
time=2024-05-19T21:38:07.801+08:00 level=INFO msg="scanner mode enabled" max-rtt=1s
time=2024-05-19T21:38:07.833+08:00 level=INFO msg="successfully loaded warp identity" subsystem=warp/account
[2024-05-19 21:38:08.045] [info]  system proxy has been set.
time=2024-05-19T21:38:14.402+08:00 level=ERROR msg="ping error" subsystem=scanner subsystem=scanner/engine addr=<IP_ADDRESS> error="read udp <IP_ADDRESS>:50703-><IP_ADDRESS>:4198: i/o timeout"
time=2024-05-19T21:38:17.847+08:00 level=INFO msg="scan results" endpoints="[{AddrPort:<IP_ADDRESS>:946 RTT:252.6152ms CreatedAt:2024-05-19 21:38:15.8235006 +0800 CST m=+8.056932101} {AddrPort:<IP_ADDRESS>:880 RTT:347.8902ms CreatedAt:2024-05-19 21:38:17.8073684 +0800 CST m=+10.040799901}]"
time=2024-05-19T21:38:17.847+08:00 level=INFO msg="using warp endpoints" endpoints="[<IP_ADDRESS>:946 <IP_ADDRESS>:880]"
time=2024-05-19T21:38:17.847+08:00 level=INFO msg="running in warp-in-warp (gool) mode"
time=2024-05-19T21:38:17.848+08:00 level=INFO msg="successfully loaded warp identity" subsystem=warp/account
time=2024-05-19T21:38:24.873+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:26.521+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:28.228+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:29.868+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:31.517+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:33.200+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:34.920+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:36.586+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:38.594+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:40.717+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:42.552+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:44.584+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:46.388+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:48.036+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:49.684+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:51.337+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:52.991+08:00 level=ERROR msg="connection test failed" error="Get "https://one.one.one.one/\": tls: failed to verify certificate: x509: certificate has expired or is not yet valid: "
time=2024-05-19T21:38:52.991+08:00 level=ERROR msg="context deadline exceeded"
[2024-05-19 21:38:53.008] [info]  wp process exited.
[2024-05-19 21:38:53.012] [info]  trying to disable system proxy...
[2024-05-19 21:38:53.172] [info]  system proxy has been disabled on your system.

ok


Show Molecule displays synonym match before Smiles Match

when performing display or show molecule command, if it searches PubChem for result it will display a Synonym match before Smiles Match.

Solution:
Reorder the search in mol_functiond.retrieve_mol to prioritise for SMILES search

Fix committed to branch chemchat_update


main.yml

@Jared-JH Thanks for the PR and interest in this repo. Please provide details on why this change is needed. Also, if this is not ready please switch it to a draft.

Because we have not heard back with the information we requested, we are closing this PR for now. If you are able to provide the info later on then we will be happy to re-open this PR to pick up where we left off.


Duplicated Attributes in package.json

Hi, I found some duplicated attributes dependencies and peerDependencies in package.json. This is not a buger, but you know...

They are not duplicate; the latter ones refer to jspm


fix: add log message when multi-file validators are not triggered

Summary:
Fixes #1308.  Multi-file validators are not triggered due to parsing errors. This change adds a log line alerting that multi-file validators were not triggered.
More detailed information regarding the validators that were ignored/executed will be addressed as part of #1097
Expected behavior:
Alert via console log when multi-files validators are not triggered.
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Run the unit tests with gradle test to make sure you didn't break anything
[x] Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
[x] Linked all relevant issues
[ ] Include screenshot(s) showing how this pull request works and fixes the issue(s)

@davidgamez are you still interested in getting this submitted?  Or are you going to defer to your larger plan around multi-file validation?

@davidgamez are you still interested in getting this submitted? Or are you going to defer to your larger plan around multi-file validation?

I think makes sense, for now, to defer this change until the larger plan is implemented as it doesn't add a lot of value. Closing the PR.


Email subscription with double-opt-in

According the new GDPR regulation in Europe, it's strictly required by law, that all users subscribing to an email list, require to double-opt-in per notification mail.  I did not find a chance to enable double opt in with Ghost, so for now, I have disabled email subscription.  But I'd like to re-enable this soon to stay in contact with my readers.
Is it planned to enable double opt in for email subscriptions?

The entire feature is due to be re-imagined as part of the memberships & subscriptions work (https://forum.ghost.org/t/memberships-subscriptions/377). It's only ever been implemented as a partial beta feature so far (that's why you have to turn it on in labs) and is not designed to be a full subscription system but rather to be tied in with an existing mailing list provider via Zapier integrations.
If you use Zapier to sync your Ghost subscribers list with your mailing list (eg. via MailChimp) then you can enable double opt-in in there.


2730 rectify integration tests followup

Context
test description
additional required setup for cypress tests
Changes proposed in this pull request
Amended test description
Added additional required setup for cypress tests
Guidance to review
:ship:
Checklist

[x] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[x] Rebased master
[x] Cleaned commit history
[x] Tested by running locally

 Rectify integration tests


Handle matchExpressions for podSelector

cf https://github.com/runoncloud/kubectl-np-viewer/issues/9
Description
This MR aims to add matchExpressions treatment by np-viewer
It also change how  we select network policies rules applied to a specific pod
Changes
Add matchExpressions
Change the way we deal with sortAndJoinLabels for pod and namespace selectors:

1 global function that take as args selectors

If there is matchExpressions it join labels using sortAndJoinLabelsForMatchExpressions
otherwise it joins labels like previously  (sortAndJoinLabelsForMatchLabels)

Rendered label lines
Depending on the operator:

Exist: label=*
DoesNotExist: !(label)=*
NotIn: label=!(value1|...|valueN)
In: label=(value1|...|valueN)

Change line selection for a given pod
Theses changes entail that we also have to change the behaviour of the filterLinesBasedOnPodLabels function
It also fix the way it previously selected network policies rules applied to a specific pod:

Indeed, previously it performed a loop on all labels use in selector. If one of them  statisfied the condition ⇒ add the line
Nevertheless, label selection is AND'ed not OR'ed. Therefore, we have to ensure that all label selectors condition match with the pod given.

Notes: matchExpressions treatment is based on the spec (details)

@ariary Thank you for your contribution!


Fatal error signing Mac App

Describe the bug
I am building a desktop application. The build works completely fine without signing. With signing, I get the following error:
Caused by: org.gradle.api.InvalidUserCodeException: Starting an external process '/usr/bin/security find-certificate -a -c Developer ID Application: <my dev id> <my-keychain-path>' during configuration time is unsupported.

Affected platforms
Desktop
Versions

Kotlin version*:  1.8.20
Compose Multiplatform version*: compiler version 1.4.5, plugin version 1.4.0
OS version: Mac OSX
OS architecture (x86 or arm64): arm64
JDK (for desktop issues): 17
Gradle: 8.1

To Reproduce

Create a desktop project using the versions above. I suspect the gradle version is the most critical one.
In the buildscript, configure the mac app to be signed
Execute the build

Expected behavior
The build to succeed
Workaround
Use --no-configuration-cache in the gradle process. However, this prevents using the configuration cache.
Additional context
I suspect this issue is related to the latest Gradle version. Gradle has been tightening restrictions related to the configuration cache.

What MacOS version do you have?

Can you please create a minimal reproducible sample on GitHub?

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


Support file uploads with upload progress

Neither jQuery nor the fetch API supports progress events during AJAX file uploads. Currently this seems to require using XMLHttpRequest directly.
Add a method d2.api.upload that returns a promise and also takes a progress callback.

This was implemented by allowing the xhr field (as well as any other field) of the options object passed to d2.api.post to get passed to jQuery unchanged (see 7df3c5182fc3bf65bf23dad83d9d483e40479543). That way a custom XMLHttpRequest object with an upload progress event callback can be provided:
const xhrWithProgress = new XMHLttpRequest();
xhrWithProgress.upload.onprogress = (progress) => { console.log('Progress:', progress); };
d2.api.post('staticContent/logo_front', formData, {
  xhr: () => { return xhrWithProgress; }
});


[azure-iot] IoT Extension Version 0.10.7

Notes for this release are available here:
https://github.com/Azure/azure-iot-cli-extension/releases/tag/v0.10.7

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it mcr.microsoft.com/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/c-ryan-k/azure-cli-extensions.git@patch-2#subdirectory=src/$EXT&egg=$EXT"


Usage of sap.ui.require.preload for library-preload.js >=1.54

@matz3 this enables to create library-preload.js files with sap.ui.require.preload for >=1.54 and will fix the issue with the current 1.54 bower releases (jQuery is not defined issues) - should fix: https://github.com/SAP/openui5-sample-app/issues/28 once we adopt the bower releases.

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add Observable Inputs library link and Table info to docs

see: https://github.com/observablehq/inputs#Table
and https://github.com/observablehq/inputs/blob/main/LICENSE

see: https://github.com/RandomFractals/vscode-data-table#data-table--renderer-view


DBObject insert exception

I would like to convert a JSON string to an DBObject and store it into my database. I wrote this code :
val jsonInput = "{  \"ok\": 42 }";
val objToStore = ObjWrapper(JSON.parse(jsonInput) as DBObject)

ObjectMapper().registerModule(KotlinModule()).writeValueAsString(objToStore) // works
col.insertOne(objToStore) // throws an exception

When I used Jackson directly with the KotlinModule, it works, but when I try to insert the object I obtain the following exception :
java.io.UncheckedIOException: com.fasterxml.jackson.databind.JsonMappingException: Cannot infer visibility for inherited final val size: kotlin.Int defined in java.util.LinkedHashMap[JavaPropertyDescriptor@6b9267b] (through reference chain: com.test.ObjWrapper["value"])

As explained in the documentation, you have to get a MongoClient from KMongo.createClient() to enable mapping.
import org.litote.kmongo.*

data class Obj(val ok: Int)

val client = KMongo.createClient() //get com.mongodb.MongoClient new instance
val database = client.getDatabase("test") //normal java driver usage
database.getCollection<Obj>().insertOne("{  \"ok\": 42 }")

Please close the bug if it's ok on your side. By the way, I've just opened a google groups for this kind of question: https://groups.google.com/forum/#!forum/kmongo

I've already got the MongoClient, but I don't understand how it can fix my bug.
This is my complete code :

data class User(val _id: ObjectId,
                val userId: String,
                val account: DBObject)

object DbManager {

    val client: MongoClient get() = KMongo.createClient()
    val database: MongoDatabase get() = client.getDatabase("mydb")

    fun getOrCreateUser(userId: String) : User {
        val collection = database.getCollection<User>()

        var user = collection.findOne("{userId:${userId.json}}")
        if (user == null) {
            val account = createNewAccount();
            val accountInfo = JSON.parse(JsonFormat.printer().print(account)) as DBObject
            user = User(ObjectId(), deviceId, accountInfo)
            collection.insertOne(user)
        }
        return user
    }

In my case, account is an object from an external library, I can't modify it. That's why, I convert my object to a JSON string, then to a DBObject. My objective is to store the account object as a JSON in my db.
But, when the code processes insertOne, it throws an exception.
I think, there is a bug with DBObject and Kotlin. What do you think ?

This is a KMongo bug. I'm going to fix it, but I will not release the fix immediately,  as you have a workaround:

import org.bson.Document
import org.litote.kmongo.json

data class User(val _id: ObjectId,
                val userId: String,
                val account: Document)

object DbManager {

    val client: MongoClient get() = KMongo.createClient()
    val database: MongoDatabase get() = client.getDatabase("mydb")

    fun getOrCreateUser(userId: String) : User {
        val collection = database.getCollection<User>()

        var user = collection.findOne("{userId:${userId.json}}")
        if (user == null) {
            val account = createNewAccount();
            val accountInfo = Document.parse(account.json)
            user = User(ObjectId(), deviceId, accountInfo)
            collection.insertOne(user)
        }
        return user
    }


IPFS loading after an upgrade is a bit painful

The Chore
When we did the latet upgrade console was broken for IPFS reasons for a while
Tasks

[ ] Make the empty HTML more useful, ideally with some sort of message about "looks like console is struggling to load" or "Console is upgrading, come back later"
[ ] Remove the chunking of javascript packages so that Console loads / fails as a whole not in pieces (have one giant javascript bundle)

Additional details / background info

Think we need @mattrussell36 view on this ... particularly the removal of chunking.

Both market and portfolio pages have seperate bundles.
We ideally would do this ... but the question is when?
Its also not clear whether we can get this down to one bundle.

This is likely not a one-off ... so lets do a pass as part of some work to chaneg our next JS bundle... which is now under another ticket. Closing this.


Merge 0.2.0 back into master

Development of smart-gateway-operator on master going forward will be based on release 0.2.0 to start.

I have created the card for Sprint 22 to resolve the issues with the  pepper.
https://trello.com/c/IblwRgfU/852-replace-all-todo-items-in-smart-gateway-operator-readmemd-with-proper-documentation-procedures


Release 1.1.2

This PR does a library release 1.1.2.
It also removes a now redundant SLF4J-related configuration in the model-verifier.

@armiol PTAL. The build will pass once base and time 1.1.2 are published.