Krita doesn't build.

Steps To Reproduce
Steps to reproduce the behavior:

Add krita to environment.systemPackages
Try to nixos-rebuild

Build log
https://gist.githubusercontent.com/surfaceflinger/ba2447d65de78286c7fae0a7ea36c50e/raw/baf122b542c33e83a6705241d7fb35fe0bd4da14/krita.log
Additional context
Log shows fatal error: cannot write PCH file: No space left on device but I don't think that's the case, because I have almost 300GB left. Looks like it doesn't build on Hydra either, because it's been trying to build locally for me for few days and flake updates now.
Notify maintainers
@abbradar @sifmelcara @nek0
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.0.15, NixOS, 23.05 (Stoat), 23.05.20221231.8ba56d7`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.12.0`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

It actually does build, but the most recent build failed on Hydra due to a transient error (builder disk space) and was never restarted: https://hydra.nixos.org/build/203494336
I've built it locally and pushed the storepath /nix/store/vwp5549a039dsv0ii869284cb3hl40ci-krita-5.1.3 to https://foosteros.cachix.org/ to show that it does in fact build (and also to unblock my own config)
Maybe @vcunat could restart the Hydra job? (or we could get #207330 merged, which would cause a rebuild anyway)

Maybe you're using tmpfs and that's where it doesn't fit?
Anyway, it succeeded after restarting, so I'd close this.  The build is probably expensive and that can cause issues unfortunately, but I think it will be hard for us to improve.

oh, for some reason I've thought builds are happening in /nix too:)


build(deps): upgrade flurl

Description

upgrade Flurl packages to the latest major
remove Newtonsoft.Json references from all non test projects

Why
To upgrade the project dependencies and remove newtonsoft json from non test projects
Issue
Refs: #1052
Checklist

[x] I have followed the contributing guidelines
[x] I have performed IP checks for added or updated 3rd party libraries
[x] I have created and linked IP issues or requested their creation by a committer
[x] I have performed a self-review of my own code
[x] I have successfully tested my changes locally
[x] I have added tests that prove my changes work
[x] I have checked that new and existing tests pass locally with my changes
[x] I have commented my code, particularly in hard-to-understand areas

IP Issues are created
nuget/nuget/-/Flurl.Http.Signed/4.0.2
nuget/nuget/-/Flurl.Signed/4.0.0


Add option for --list-extensions arg

Updates listExtensions() and getId() for optional params showVersions / withVersion
Adds --help info for new option

Resolves: #12963

Hi @greams, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

Coverage remained the same at 61.233% when pulling e0bd67ed5a678fba16a88cfd36b8297b7ec9fdb5 on greams:feature/12963_ListExtensions_should_show_extension_version into 602155bb781f509c7a4ddcd700b57cb9b9f5286d on Microsoft:master.

@greams, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Thanks!


Decide how to handle special editions for a print/set

Some sets have some special editions, 2-pack sets, sneak peak cards, which have the same setCode and at the end are associated with the same set with some extra cards. We should explore which prints belongs to those sets and decide how to handle them both at the print level and the set level.
Some options to handle them:

The print belongs to the set and has a flag indicating which kind of special-edition/promotion is part of (or a list of categories). The set contains a property with the kind of special-edition/promotional-cards it might contain (either a flag-property or a list of categories).
Each special-edition/promotional-card set is its own model with few cards (i.e., Ancient Profecy is a set and Ancient Prophecy 2-Pack Set is a different one). The print then is associated with the original set if it is part of the main set, or to the specical-edition/promotional card set.

Option 2 is the same as it is represented on Yugipedia, but at the end those sets contain a single card or few. Option 1 is more in line with the mental model that we have in mind at the moment, where we simplify and flatten most of the information. At the end, those sets include the same boosters as the original ones with a card that is known in advance.

Some interesting finding about this is the presence of some special packs and/or re-prints that are considered the same but not linked together:

An example with the 25th Anniversary packs: LOB 25th Anniversary Edition and LOB (original)) contains the same cards, with print codes (except some region formatting) and they might be linked.
The Japanese print with code BODE-JP039 for Destiny HERO - Destroyer Phoenix Enforcer is present in both the Burst of Destiny and Burst of Destiny +1 Bonus Pack, but only a sub-set was included in the special pack (with the addition of a BODE-JPS card).

If we should consider those prints the same or different depends if they are distinguishable from the original printing (in the case of the 25th Anniversary, it is a reprint with some errata and layout changes).

After #91, I found that the prefix for the printNumber can distinguish most special sets properly without the need of linking them together.
We need still to consider what to do with the reprint sets with same setCode (most likely, keep everything separate, as we might consider them as products more than "sets", even if cards might belonging to one or the other not being recognizable).


Error connecting MEW wallet

Using a Safari browser, click the "MEW wallet" button, cancel the request, then click the button again. It fails with an error as shown below.

Is this a problem on our end or theirs?

It connects fine on Chrome with default browser settings. Reproduced the error on Firefox, looks like a popup blocker problem.
Disabling popup blocker and refreshing the page enables the popup to connect with the MEW servers.

I can confirm that MEW wallet still works fine in Safari when the popup blocker is not in effect. However, I reproduced the exact issue described above where canceling the initial connection leads to the null error appearing on the second attempt. I'll leave this issue open in case others report it, but I think this is a bit of an edge case. I'm not able to reproduce any issues in Chrome.


Wallet connect V2

Hello
do you plan to manage Wallet Connect V2 ?
Thank you

hi @redDwarf03 we have integrated WalletConnect to dodao app, we have to polish it and then we can include a usage example into Webthree repository.
Maybe you would like to submit your PR or support on this?

Hello! I can try to help you. I will see that


bump requests to 2.23 and move to install_require

This PR addresses two issues:

Pinned usage of two year old version of Requests lib - update from 2.20 to 2.23

Move of this dependency to install_requires/requriments.txt from tests_require/dev-requirements.txt

Reason: while mainly used in tests, requests package is imported and used in service.py as well. e.g.   https://github.com/SAP/python-pyodata/blob/8937eca8a36aa49b5dc34e2b8de08a7671b69ccc/pyodata/v2/service.py#L840

Codecov Report

Merging #89 into master will decrease coverage by 0.58%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #89      +/-   ##
==========================================
- Coverage   92.23%   91.64%   -0.59%
==========================================
  Files           6        6
  Lines        2433     2262     -171
==========================================
- Hits         2244     2073     -171
  Misses        189      189

Impacted Files
Coverage Δ

pyodata/v2/model.py
92.14% <0.00%> (-0.73%)
:arrow_down:

pyodata/v2/service.py
89.70% <0.00%> (-0.29%)
:arrow_down:

Continue to review full report at Codecov.

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

My idea was to not have a hard dependency on requests and the import in service.py is wrong.
Also it is no good idea to have 1 commit per 2 changes.

That's valid concern - I wanted to make a point with this PR, since it is just few lines.  I will change this PR to be handling only the problem no. 1.
"not have a hard dependency on requests and the import in service.py is wrong."  - exactly, since it is solvable by some local constant with status code ranges, I will for new just create an issue for point 2 to be solved in some another PR in future.

point no 1. not handled correctly in git, closing for new PR
issue #90 created for point no.2


Add praqma automation user to clearcase

We need permissions for our automation user 'praqma' to commit to this repo. He doesn't have a github acccount.

👍


For Biblio add a set for all records with file attachments

For biblio add a set that contains all records that have at least one file attachment.

added biblio:fulltext set


config/default: Fix C-return binding in GUI Emacs

The "C-RET" counsel-company binding does only seem to work when running Emacs in a
terminal. "C-" makes it work when running the desktop version too.

Sorry for the late response. Thanks for your help!


Dummy class namespace in Blazor localization shared resource section

Description
I think the dummy class namespace should be set something other than what is written in the documentation. Because the compiler detects an already existing class with the same name.
The dummy class:
namespace BlazorSample.Localization;

public class SharedResource
{
}

And the class generated from .resx:
namespace BlazorSample.Localization {
    using System;
...
    public class SharedResource {

        private static global::System.Resources.ResourceManager resourceMan;
...

Which throws:
Localization\SharedResource.Designer.cs(25,18,25,32): error CS0101: The namespace 'BlazorSample.Localization' already contains a definition for 'SharedResource'

If you change the namespace of the dummy class to the root namespace all will be well.
BlazorSample.zip
Page URL
https://learn.microsoft.com/en-us/aspnet/core/blazor/globalization-localization?view=aspnetcore-8.0#shared-resources
Content source URL
https://github.com/dotnet/AspNetCore.Docs/blob/main/aspnetcore/blazor/globalization-localization.md
Document ID
d6f07538-228e-9f96-680f-6c324caf11d6
Article author
@guardrex
Related Issues

Hello @mobinseven ... I can't reproduce that error here, and I can't open a ZIP file. Can you place that app up on GitHub in a repo for me to look at?

Can you place that app up on GitHub in a repo for me to look at?

Hello @guardrex
Here you are:
mobinseven/BlazorSample
Best regards.

btw ... @mobinseven ... you can delete the SharedResource.Designer.cs ... add Loc services (builder.Services.AddLocalization();) ... and continue on with that section's guidance.
I do see tho that I need to add a remark about confirming that ...
@using Microsoft.Extensions.Localization

... is in the _Imports file of the app to light up the IStringLocalizer API in the component.

AFAIK this class is just a marker
@mobinseven are you using docs sample or your own sample, so we can investigate

It's his own sample. He's just following the section doing what the section is telling him to do.
What I don't understand is why VS added the designer file. The guidance for adding the shared resource class tell devs ...

Create a dummy class with an arbitrary class name. In the following example:

The app uses the BlazorSample namespace, and localization assets use the BlazorSample.Localization namespace.
The dummy class is named SharedResource.
The class file is placed in a Localization folder at the root of the app.

... and I can add a bullet to that ...

Create a dummy class with an arbitrary class name. In the following example:

...
...
...
Don't use an autogenerated designer file (for example, SharedResources.Designer.cs). The dummy class is meant to act as the shared resource class. The presence of a designer file results in a namespace collision.

Don't use an autogenerated designer file (for example, SharedResources.Designer.cs). The dummy class is meant to act as the shared resource class. The presence of a designer file results in a namespace collision.

I have found out that changing SharedResource access modifier in the Resource Explorer - out of habit, I guess - made VS to generate the SharedResources.Designer.cs. The access modifier must be kept at No code generation (the default value).

Thanks @hishamco ... bit of a false alarm ... sorry to have bothered you with this.

Feel free to ping me anytime when there's a localization issue :)


Add CIT test suite for test repo googet packages and drivers

Adds support for the following:

Testing googet packages from the testing repo
Testing googet drivers from the testing repo

/hold

Holding as I notice VS made a change to the imports in main.go

Hold doesn't do anything here because copybara manages changes. The only review the matters the internal review generated from this PR.

Ah I see. Still a bit new to me, admittedly. I see the internal review for this though, so that's good.

Undid that VS change as well, so it's ready to review. Lmk if I'm missing anything. I'll do a followup change (maybe following the internal process?) to add it to periodics once this is in

Do we need to exclude this from any concourse pipelines in guest-test-infra?

Do we need to exclude this from any concourse pipelines in guest-test-infra?

Oh good callout. This should not be run in any of the build verification steps. We expect this to be relatively unstable.


Updated Player Model (or at least tried to)

Trying to get a more complicated player model loaded (need to push to main to test)

The code uses the player_model/scene.gltf. But that file doesn't seem to exist.


[WIP] Keep everything in the styles tree originally present.

I'm not sure that this is correct. I need to research where these assets get moved to within the tree in EmberApp

Closing, this is pretty stale...


Silence DDL log / notices when repository log config is false

Silences DDL log notices when the repo log config is false.
Fixes #477

Looks like this test is failing due to the change: https://github.com/elixir-ecto/ecto_sql/blob/master/integration_test/pg/migrations_test.exs#L43
You could change its log to something other than false and it will pass.

It might be a good idea to update the docs too to say log: false silences the messages from the database. Right now it's not obvious it belongs in the scope:
https://github.com/elixir-ecto/ecto_sql/blob/master/lib/ecto/migrator.ex#L204
`:log` - the level to use for logging of migration instructions.
      Defaults to `:info`. Can be any of `Logger.level/0` values or a boolean.

I'll try to run the mysql & mssql tests using earthly locally first, getting a few failures with my mysql 8.0 install.

doesn't seem to like my M1 Mac, I'll try testing it on a Linux box tonight
Error: build target: build main: failed to solve: Earthfile line 109:8 with docker run: pull: resolve image config for mysql:5.7: no match for platform in manifest sha256:8cf035b14977b26f4a47d98e85949a7dd35e641f88fc24aa4b466b36beecf9d6: not found
in		github.com/deepfryed/ecto_sql:master+integration-test-mysql --MYSQL=5.7

Thank you


dealing with innaccessible GitHub tags

Specifically for Maven, there are many instances of "poorly named" GitHub tags which don't match the versions specified in pom files: as an example, most of them specify versions in the pom as X.Y.Z, but then in GitHub they're commonly something-X.Y.Z. I thought about checking if the version itself they give us is present, as a substring, in any of the GitHub tags, besides all the checks we already do for that, but I also thought this may not be very safe -- if a version is specified in the pom as ., for instance, this could lead to them pretty much always being found/accepted.
What do you think? cc @monperrus @Stamp9
I'm leaving an example below which I got from spoon, but there are many more like this

(BTW, I know that the package_name in the tag_format function currently doesn't really make sense when I'm passing it as maven packages, I'll fix it soon; the core problem here still applies, regardless)

We can design and document a systematic solution to lookup tags

Well, there's already a beginning for that here, which looks for

<tag>
v<tag>
<packagename>@<tag>
<packagename>-v<tag>
<packagename>-<tag>

So, I guess the steps would be to build a systematic list of tag/version formats which we think would be extensive enough to look for, and assume that if it's not one of those, they either don't exist OR are poorly documented/named?
I think from the ones you mentioned, the only one missing is the second one (with a _ separator). I'll implement that, and also try to think of some more tag formats which could be relevant. If you remember any other ones, please write them here too!

So, I guess the steps would be to build a systematic list of tag/version formats which we think would be extensive enough to look for, and assume that if it's not one of those, they either don't exist OR are poorly documented/named?

yes, exactly

@randomicecube checkout Table 3 of AROMA paper.

Thank you @algomaster99 !
Re-opening the issue to take this table into account


assert_pods_failed_or_pending - add pod namespace

Short description:
More details:
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

!verified

!cherry-pick v4.12


[TH2-4971] Add group into message ID in transport response

We were going to migrate rpt-viewer to ldp some day

Were we, @Nikita-Smirnov-Exactpro?) First time I've heard that.
The current approach with groups (and disabling storing messages by alias) does not give us any choice except to add the group to the message ID (otherwise, you cannot extract it from the cradle without dancing with a tambourine). So, this was a judgment call to add it to the message ID


[Windows] Calling destroy() method is crashing the app and app is not responding anymore.

Expected result : app gets closed immediately after calling destroy method

For those looking for a solution, a workaround can be found here: https://github.com/leanflutter/window_manager/issues/478#issuecomment-2312763103
In my case, I simply added exit(0) when closing the app from the tray icon menu:
windowManager.destroy().then((_) => exit(0));


Updated template script to resolve DHCP issue

Resolves Network issues after rebooting the PowerVS instance

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: bkhadars
To complete the pull request process, please assign mkumatag after the PR has been reviewed.
You can assign the PR to them by writing /assign @mkumatag in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @bpradipt

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: bkhadars, bpradipt
To complete the pull request process, please assign mkumatag after the PR has been reviewed.
You can assign the PR to them by writing /assign @mkumatag in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Copy files from one folder to another folder

I'm trying to copy files from one folder to another folder in github branch by ignoring one folder(trigger) using below powershell script
name: Azure PowerShell Action
uses: Azure/powershell@v1
with:
Specify the Az PowerShell script here.
inlineScript: |
[System.Collections.ArrayList]$E = (get-childitem -path ".\dev").name
$E.remove("trigger")
copy-item -path ".\dev*" -destination ".\prod" -Recurse -Force
Write-Output "File copy process completed."
Azure PS version to be used to execute the script, example: 1.8.0, 2.8.0, 3.4.0. To use the latest version, specify "latest".
azPSVersion: 5.1
Select the value of the ErrorActionPreference variable for executing the script. Options: stop, continue, silentlyContinue. Default is Stop.
errorActionPreference: Stop
From the above script my pipeline is running successfully but I'm unable to see content copied from one folder to another folder. Please help me on this issue.

Hi @Dinesh-chekuru , could you share the screenshot? It's not clear from the plain text. I can't tell which part is the script and which part is the log.
Do you use a Azure PowerShell version 5.1? Could you use a latest one, e.g., 10.0.0?
And have you tried the powershell script directly, instead of Azure PowerShell? Since it's not related to Azure PowerShell. Refer to Building and testing PowerShell.

Hi YanaXu,
I'm unable to attach screen shot in this chat. I'm sharing the script below which I'm using clearly. please let me know your thoughts on the below script.
name: Azure PowerShell Action
uses: Azure/powershell@v1
with:
inlineScript: |
[System.Collections.ArrayList]$E = (get-childitem -path ".\dev").name
$E.remove("trigger")
copy-item -path ".\dev*" -destination ".\prod" -Recurse -Force
Write-Output "File copy process completed."
azPSVersion: latest
errorActionPreference: Stop
I tried with latest and 10.0.0 Azure powershell version but still unable to see the expected output.
From the above script my pipeline is running successfully but I'm unable to see content copied from one folder to another folder. Please help me on this issue.

@Dinesh-chekuru, can you ping me on teams? You can find my contact mail in profile.

Hi @Dinesh-chekuru , can you see my message on teams?


Tableau metadata ingestion drops TableauDataModel from Data Product assets

Affected module
It impacts backend.
Describe the bug
Tableau metadata re-ingestion drops Dashboard Data Model from Data Products assets. That asset was added manually between initial ingestion and the next run.
To Reproduce

Ingest a Dashboard Data Model from Tableau using Airflow standard connector.
Go to "Data Products" and select one.
Go to the "Asset" option and add a Dashboard Data Model ingested on the first step.
Run Tableau metadata ingestion using Airflow standard connector again.
No asset is longer present in the selected Data Product.
In the model 'Versions History' I can see that dataProducts has been deleted by ingestion-bot and the time correlates with the airflow DAG execution

Expected behavior
Dashboard Data Model should be present in Data Product assets after reingestion of the Tableau metadata.
Version:

OS: debian, apache/airflow:2.6.3-python3.11 Docker image
Python version: 3.11
OpenMetadata version: 1.3.0
OpenMetadata Ingestion package version:

    openmetadata-ingestion[great-expectations,postgres,tableau]==1.3.0
    openmetadata-managed-apis==1.3.0

Fixed by https://github.com/open-metadata/OpenMetadata/pull/16866
Will be available in 1.5.0


No component factory found for ToppyComponent

Unable to use the Toppy library for showing the popover dynamically.
Getting the below error .
Uncaught Error: No component factory found for ToppyComponent. Did you add it to @NgModule.entryComponents?
If I try to add the ToppyComponent in entry component, and use
"import { ToppyComponent } from 'toppy/lib/toppy.component'
I get the compile time error :
Module not found: Error: Can't resolve 'toppy/lib/toppy.component'

Hi @DivyaArora-24,
Could you please provide little more information? like code, angular version.. it would be helpful to figure it out the issue.

Toppy is working but when I try using a component I see this "Did you add it to @NgModule.entryComponents?" in Angular CLI version (8.3.8)
this.overlay = this._toppy.position(position).content(ColorDescriptionComponent).create();

I have the same issue. I use Angular 8 and the latest version of toppy.

same issue with angular 8


Cannot run group by on filed with actionType ( rangeFiled) in OLAP query

https://github.com/COOL-cohort/COOL/pull/54

Fixed in PR https://github.com/COOL-cohort/COOL/pull/54


Upgrade golang.org/x/sys to prepare for Windows Service.

Upgrade the indirect dependency golang.org/x/sys in preparation for Windows Service support.
The Windows portion of the module was not included and the svc.IsWindowsService() method is not available when running go mod vendor.
Reference Bug: https://github.com/kubernetes/node-problem-detector/issues/461

/lgtm
/approve

/lgtm
/approve

/ok-to-test

/ok-to-test


fix - kill network capture process if any container is killed

Description

Fix network thread issue
Issue is network thread is not terminating after an error
to reproduce the issue, run a module, and then kill the container with docker kill container_name. OHP is expected to exit from working and throw an error, but the network thread stays open and it's not terminating.
Steps to Reproduce

# run the command below
$ sudo python3 ohp.py -m ftp/weak_password,ftp/strong_password --store-pcap
# wait until network capture process starts

# on new terminal run the command below
$ docker kill ohp_ftpserver_strong_password
# on the terminal where you started the capture process it will not end but it should.

Related Issue

#359
Screenshots (if appropriate):

After killing the container the network capture process terminates successfully.

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Other

Checklist

[x] I have followed the Contributor Guidelines.
[x] The code has been thoroughly tested in my local development environment with flake8 and pylint.
[x] The code is Python 3 compatible.
[x] The code follows the PEP8 styling guidelines with 4 spaces indentation.
[x] This Pull Request relates to only one issue or only one feature
[x] I have referenced the corresponding issue number in my commit message
[x] I have added the relevant documentation.
[x] My branch is up-to-date with the Upstream master branch.

@dhirensr check now


Increment Version

@JuliaRegistrator register() ACTRModels v0.5.1

Registration pull request created: JuliaRegistries/General/27001
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.5.1 -m "<description of version>" 796b420e6e410814bc865dc802d9db4ef9de8156
git push origin v0.5.1


Specify key name when use ImportRawJson

Is your feature request related to a problem? Please describe.
I'm using the importRawJson method but I'd like to use very short key name in my json to reduce their size but then in my code I don't want to work with keys like "m" or "k"
Describe the solution you'd like
Just being able to tell which field is what with a decorator will be enough
Any other way will be good too.
Ex:
@collection
class User {
  Id id = Isar.autoIncrement;

  @Field("l")
  String lastName;
  @FIeld("f")
  String firstName;
}

Version

Platform: iOS, Android, Mac
Flutter version: 3.3
Isar version: 3.0.6

I'll close this as there is the @Name("FieldName") attribute that does the job and work :)
My bad I didn't find it in the doc first time I read it.


Clicking checkbox prevents dragging checkbox in Firefox

Should probably put a transparent div over the checkbox to prevent clicking it.

not using checkbox control anymore


SEAB-6488: Modify SourceFile to flag errors

This PR modifies SourceFile so that we can conclusively differentiate a successfully downloaded file from one which failed to meet our requirements (for example, a file that could not be stored because it was binary.)  See this PR for some motivation, search for "in a followup PR": https://github.com/dockstore/dockstore/pull/5893
Specifically, this PR:

adds a state property to SourceFile, which describes the representation of the SourceFile, and currently has two values:

COMPLETE: the file was successfully downloaded and the SourceFile's content represents the file body.
NOT_STORED: the SourceFile's content contains a message, rather than the actual file body, that explains why the body isn't stored.  For example, "Dockstore does not store binary files".
STUB: the SourceFile is a stub and has null content.

changes the "limited" SourceFile builder to set the new properties appropriately.
changes the SourceFile copy/duplicate helper methods to copy the new properties.

Later, we could add other values to the new enum.  For example, if we wanted to try to handle big files by storing a smaller alternate representation of the content (instead of totally jettisoning it), we could have new state values like:

SUMMARY: the content represents a summarized version of the file content.
HEAD: the content represents the leading portion of the file content.

The above might be useful to support the registration of AI models, for example, which have files containing gigabytes of weights.
The PR also contains some db migration fixups for the existing sourcefile values.
There will be a companion UI PR, which, at a minimum, will tweak the UI so it builds and change the notebook preview code to not attempt to render not-COMPLETE content as a notebook.
Review Instructions
Register an entry that contains files that are binary and/or too large, and confirm that the resulting sourcefiles have the correct "state" values, both in the db and in the API responses.
Issue
https://ucsc-cgl.atlassian.net/browse/SEAB-6488
Security and Privacy
If there are any concerns that require extra attention from the security team, highlight them here and check the box when complete.

[x] Security and Privacy assessed

e.g. Does this change...

Any user data we collect, or data location?
Access control, authentication or authorization?
Encryption features?

Please make sure that you've checked the following before submitting your pull request. Thanks!

[x] Check that you pass the basic style checks and unit tests by running mvn clean install
[x] Ensure that the PR targets the correct branch. Check the milestone or fix version of the ticket.
[x] Follow the existing JPA patterns for queries, using named parameters, to avoid SQL injection
[x] If you are changing dependencies, check the Snyk status check or the dashboard to ensure you are not introducing new high/critical vulnerabilities
[x] Assume that inputs to the API can be malicious, and sanitize and/or check for Denial of Service type values, e.g., massive sizes
[x] Do not serve user-uploaded binary images through the Dockstore API
[x] Ensure that endpoints that only allow privileged access enforce that with the @RolesAllowed annotation
[x] Do not create cookies, although this may change in the future
[x] If this PR is for a user-facing feature, create and link a documentation ticket for this feature (usually in the same milestone as the linked issue). Style points if you create a documentation PR directly and link that instead.

Ok, I reverted to a simplified version which is similar to the original implementation, with a single enum that represents the state, some naming improvements, an additional STUB enum value, and some logging so we can determine how often sourcefiles are limited in the various ways.  The dual enums are history, and discussions about their logical consistency and how to maintain it are now moot.  w00t!


update docs with Seq2seq models, set_seed, and create_reference_model

This PR is just a small update to the docs.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Rate Limiting

Is your feature request related to a problem? Please describe.
The absence of a rate-limiting feature in the current implementation makes the API susceptible to abuse, such as brute-force attacks, and may lead to system overloads. A rate-limiting feature would prevent such issues, enhancing the API’s resilience and performance.
Describe the solution you'd like
Implement a rate-limiting feature based on the API key. This feature should allow configuration of the number of requests a user can make within a specific time frame. It should also support customization, setting different rate limits for API keys or use cases. Essential components of this feature should include error handling to return meaningful messages when a rate limit is exceeded, headers to inform users of their usage status, and logging to keep track of rate-limiting events for analysis and monitoring.
Describe alternatives you've considered
An alternative could be integrating third-party middleware for rate limiting. However, having a built-in feature would ensure better compatibility and a more streamlined configuration and usage experience.
Additional context
Here is an example of how the rate-limiting configuration could look:
SIMPLE_API_KEY = {
    "RATE_LIMIT": "100/hour",  # 100 requests per hour
    "CUSTOM_RATE_LIMITS": {
        "route": "1000/hour",  # Custom rate limit for a specific route
    },
}

This configuration allows for a default rate limit and custom rate limits for specific routes, enhancing flexibility and control over API access.

I think that this issue does not make sense. I mean, we can use DRF throttling for this case. Making it stalled until we can rediscuss this.


ViewService.GetViews Error when IncludeStandardViews is set to True

ViewService.GetViews error when IncludeStandardViews is set to True
Works as excepted when set to False
This is the error
Could not convert string to integer: all_by_date. Path '[0].filter_id', line 1, position 444.

The issue is fixed. Pleas grab the latest nuget package.


EnumRepositoryItemGridListEditorController: RepositoryItemEnumEdit does not contain the localized values

Since 19.1.5 in the ListViews, enum editors ignores the localized values.
For a not editable ListView I found a solution by removing the gridColumn.ColumnEdit = new RepositoryItemTextEdit(); in the GetData method:
private (GridColumn column, RepositoryItem repositoryItem, IMemberInfo MemberInfo)[] GetData(GridListEditor gridListEditor) {
            var columns = View.Model.Columns.Where(MemberTypeIsEnum).ToArray();
            return columns.Select(info => {
                var gridColumn = FindColumnByModel(gridListEditor, info);
                if (gridColumn != null) {
                    var tuple = (column: gridColumn, repositoryItem: gridColumn.ColumnEdit,
                        info.ModelMember.MemberInfo);
                    // gridColumn.ColumnEdit = new RepositoryItemTextEdit(); // removed
                    return tuple;
                }
                return default;
            })
                .Where(_ => _ != default)
                .ToArray();
        }

But when the ListView is editable the editor displays not localized values.

From what I have seen, the problem is inside the GridViewOnCustomRowCellEdit event handler where the repository items are generated using the
var values =EnumsNET.NonGeneric.NonGenericEnums.GetValues(data.memberInfo.MemberType).ToArray();
I tried to solve the issue by using an EnumDescriptor according to this https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Utils.EnumDescriptor
Unfortunately I haven't found a way to solve it.

possible dublicate of #521 can u try the related lab build or if u cannot upgrade u can disable the existing controller and get the patched from the lab
https://github.com/eXpandFramework/eXpand.lab/blob/89d093391c4e382ab54a4b05747d82b70ce1f17d/Xpand/Xpand.ExpressApp/Xpand.ExpressApp.Win/SystemModule/EnumRepositoryItemListViewController.cs

if u still cannot resolve using my suggestion provide sample app and data to research it further

I checked the patched controller from lab and works fine.
Thank you


Bug Report: Login Form

Reproduction steps
I found a bug on Login Page.
Expected behavior
The side image of login form must be related to website content.
Actual Behavior
Actually the side image has to be appropriate to the website.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Go for it!

Than you for assigning it to me. I will update you soon.


Implement range selection

Closed because repo was accidentally made private which could have lead to issues

Replaced with https://github.com/Mozharovsky/CVCalendar/pull/375


im2rec error in creating record file

Hi,
I'm getting an error in running im2rec using the command line tool.
I have correctly created the list file and am running the tool but I get this error:
[14:36:13] tools/im2rec.cc:96: Keep origin image size
[14:36:13] tools/im2rec.cc:107: Encoding is .jpg
[14:36:13] tools/im2rec.cc:153: Write to output: /Volumes/Backup/full_train.bin
[14:36:13] tools/im2rec.cc:155: Output: /Volumes/Backup/full_train.bin
[14:36:13] tools/im2rec.cc:168: JPEG encoding quality: 80
[14:36:13] src/io/local_filesys.cc:149:
Abort trap: 6

Here is the command I executed:
./bin/im2rec /Volumes/Backup/full_data_fix.lst /Volumes/Backup/ /Volumes/Backup/full_train.bin

Any ideas on what I did wrong?
Thanks so much for the help!

please try the python version

Hello,
I tried using the python version, but I still end up getting stuck with an error when trying to create the record file:
libpng warning: Application was compiled with png.h from libpng-1.6.18
libpng warning: Application  is  running with png.c from libpng-1.2.49
libpng error: Incompatible libpng version in application and library

I've made sure that I have the write libpng version installed and added in the following linker and compile flags in my config.mk file:
ADD_LDFLAGS = -L/home/rg203/libpng/lib -L/home/rg203/libpng/ -L/home/rg203/libpng/bin -L/opt/opencv-3.1.0/share/OpenCV/3rdparty/lib/

# the additional compile flags you want to add
ADD_CFLAGS = -I/home/rg203/libpng/include -I/home/rg203/libpng/include/libpng16/

Is there anything else I am missing?
Thank you very much for your advice.


Non Quay UI flow

It would be great if the UI flow for onboarding supported not only quay but also common registries like Harbor, ECR, ACR, GCR, Artifactory, Nexus etc.
I personaly use Harbor which is also the easiest to integrate with as no pre creation of a repo is needed.
Something similar to the jx-scm (go-scm wrapper) tool from JenkinsX but for OCI registries seems like the right approach in my mind by building a simple abstraction layer above the different registries for common functionality needed by Konflux.

Thank you for opening this issue @vrabbi. I agree 100% that more registries should be supported.
We work on removing image-controller (the service that provisions repositories on quay) from konflux-core, and make it possible for users to specify in the UI the repository they would like to use (in any registry).
We still didn't define the a generic interface for automatic provisioning of repositories. The way I see it, I would love us to have a plug able architecture were additional provisioners can be added to Konflux independently from each other.


MRG: Add SNIRF reader

Reference issue
#7057
What does this implement/fix?
Adds ability to read NIRS data in the SNIRF format.
Additional information
This is becoming the default file format and will become the BIDS approved format.

This work is on hold until I better understand the expected behaviour of SNIRF files as discussed here https://github.com/fNIRS/snirf_homer3/issues/5

Test data is at https://github.com/mne-tools/mne-testing-data/pull/68

Ping @larsoner @agramfort
SNIRF is a very large standard that include many features that we will not support in MNE (at least for now) including time domain NIRS, a variety of data types we won't support(diffuse correlation spectroscopy), multiple simultaneous measurements on different people (hyperscanning), non uniform sampling, etc.
I have included a few checks for data types we don't support. But this is causing a decrease in coverage as I don't have test data for all these different types (and there is no way I can obtain most of these exceptions). Do you prefer a) I don't test all these obscure features and silently fail if a user passes in a gated time domain fluorescence measurement, or b) put these tests in and have a decrease in test coverage as I cant hit them?
Here is one example of a check that I am referring to
https://github.com/mne-tools/mne-python/pull/7972/files#diff-6ddea29a0563d9d09a63ec6af1be0bf8R92

I have included a few checks for data types we don't support. But this is causing a decrease in coverage as I don't have test data for all these different types (and there is no way I can obtain most of these exceptions). Do you prefer a) I don't test all these obscure features and silently fail if a user passes in a gated time domain fluorescence measurement, or b) put these tests in and have a decrease in test coverage as I cant hit them?

One way to hit these lines with monkeypatch. If you want to try what I'm thinking of, here is an example where I hack an MNE function to give the output that we would get if a file were exhibiting the problematic behavior:
https://github.com/mne-tools/mne-python/pull/7965/files#diff-89350124c3b525af7b8aabdf157ae7ecR396-R411
It's less robust than actually having the problematic files because you have to make sure that what you mock actually properly captures the problematic behavior, but if you can accurately capture the behavior it's nice. But we also often just live with these lines not being covered, so it might not be worth the effort. Depends on how intrinsically motivated you are to work on this sort of problem...
Feel free to give it a shot if you want to play with pytest, otherwise I can try a little bit tomorrow (going to bed here no) and push a commit if successful.

Thanks for the info.

Depends on how intrinsically motivated you are to work on this sort of problem...

In this situation I am not very motivated. Lots of the checks will be for situations I never expect we will see in practice. Take for example the non uniform sampling, no commercial devices do this, I doubt even research devices do.
I think we should focus on making sure we support the same features in snirf as are available with the other readers in MNE. So currently we should support continuous wave data with uniform sample rates. Then as MNE is expanded to other nirs types we add this to our snirf support (eg once we have a frequency domain file type merged we can add snirf support for this).
This way we can provide support for what I imagine is the most common workflow. Measure data and save in native format -> read data with MNE -> save in bids format as snirf -> read in snirf bids data for processing.
So how about I put in a few checks, but I don't go overboard and we allow the coverage to slightly decrease?

Sounds good

@larsoner @agramfort could you please review this file reader. I have been using it for a week with no issues, so I think its behaving correctly.
The SNIRF file format is quite extensive, so as NIRS support expands in MNE this reader will need to be revisited (e.g. kylemath is adding frequency domain nirs support). Next I will write a SNIRF writer function.

Thanks for the review @larsoner. As always I have learnt a few things from your comments. Could you please check I have included your suggestions accurately. The Mac CI failed due to 50 min limit, I assume this is unrelated to these code changes.
Next I will code up a SNIRF writer (then we should have close to full support for NIRS BIDS). Where should this writer be placed? I could write a write_raw_snirf and put it in mne/io/snirf/_snirf.py, or should I extend save in mne/io/base.py to add an fname=*.snirf option?

Next I will code up a SNIRF writer (then we should have close to full support for NIRS BIDS). Where should this writer be placed? I could write a write_raw_snirf and put it in mne/io/snirf/_snirf.py, or should I extend save in mne/io/base.py to add an fname=*.snirf option?

Let's open a separate issue about this as it will require some discussion

https://github.com/mne-tools/mne-python/issues/8060

Thanks @rob-luke !


Upgrading from v0.13 to v0.14

There is a typo in the documentation in the apiversion  v1apha2
Note: If you’re using the cert-manager-legacy.yaml version you will not have API version conversion and thus only support cert-manager.io/v1apha2 API resources.

Thanks for noticing! I have put up a PR for this: https://github.com/cert-manager/website/pull/182


Feature: HTML Syntax Highlighting

I have been overloading the JSX tab to display not only React, but Angular and HTML. React and Angular render great! HTML does pretty well too, minus <script> tags:

Thoughts on supporting plain HTML? I will defer to maintainers. Thanks!
Reference images:

Angular
React

Yeah I'm down. The name of this plugin (and the panel title) might be a little misleading though.
Are you using something other than https://github.com/storybookjs/addon-jsx#not-jsx?

I've found I can get this feature for free with https://www.npmjs.com/package/@storybook/addon-storysource. That'll work in this use case!


gateways.istio-ingressgateway.autoscaleMin/autoscaleMax ignored while installing.

I am trying to set the minimum instances of istio-ingressgateway, but the autoscaleMin is ignored even if the autoscaleEnabled is true.
The minReplicas is alway 1.
The istio version is 1.6.7

Could this be a duplicate of https://github.com/istio/istio/issues/22192 ?

Yes , the same as #22192.


Docker for Mac support and fix for shared mount configmap issue.

I wanted to contribute this back so that users who have the Docker for Mac beta can use kid. This is related to issue #6 and #3.
The approach is a little hacky, but due to the way hyperkube currently works with networking and the networking stack with Docker for Mac, this is my working solution.
To make it work native/port-forwarding is disabled and an SSH container is used to port forward out the K8S API, then a kubectl port-forward is used to bring the canary dashboard out to localhost.
I also noticed a shared mount fix was pushed to master recently that uses a docker machine ssh command to --make-shared the / mount in order to support configmaps. I did the same thing, but with a privileged container and nsenter so it's cross-compatible with Docker for Mac as there is no ssh and the mount path is different.

Hi @danisla, thanks for this contribution. Sorry I took a while to respond. I'm happy to merge it in if you are willing to help support this and maybe clean things up once Docker for Mac stabilises and comes out of beta?

@vyshane I don't mind supporting this through the Docker for Mac release.
I also recently starting using kubernetes-anywhere which already has Docker for Mac support.

Merged! Thanks @danisla.


cmake find_package autowiring_DIR is misleading

Pointing autowiring_DIR at the root dir (e.g. /path/to/autowiring-0.5.4) doesn't satisfy find_package.  Pointing autowiring_DIR at the cmake subdir does work, but I wouldn't consider this to be "the autowiring dir", so it's somewhat misleading.
Recommend putting the relevant cmake files (autowiring-config.cmake and autowiring-configVersion.cmake) in the autowiring root dir.

I don't think we can move them there for technical reasons.
@gtremper, thoughts?

+1 because I tripped on this the other day. Took a while to figure out why it wouldn't accept my alternate autowiring build dir when I edited my CMake variables.
Other libraries don't suffer from this problem, so it ought to be possible to fix.

autowiring_DIR is created by cmake and needs to point to the autowiring cmake config files. In autowiring installs, they are put in a "cmake" directory. I think that's cause the automatic cmake package search looks for a directory with that name. But maybe the cmake config files can be moved to the root project directory?

A wild @gtremper appears

Might be best to move this stuff to the root directory--though it does depend on what's standard.  How do most modules solve this problem?  Do they usually have cmake finder stuff in the root or in a subdirectory?

Also, is it the find_package command that has this behavior, or something else?

I just noticed my Qt5_DIR is set to G:/Libraries-x64_vc12/qt-5.2.0/lib/cmake/Qt5 so Qt suffers from the same problem.
But OpenCV_DIR (from back when we used OpenCV) gets set as the OpenCV root, and OpenCVConfig.cmake.in is in there.

As @gtremper pointed out, find_package searches for cmake config files (autowiring-config.cmake and autowiring-configVersion.cmake), and then create a cache entry called autowiring_DIR to hold the directory containing the config files.
(https://cmake.org/cmake/help/v3.0/command/find_package.html Config mode)
If we want autowiring_DIR to point to autowiring root directory, the config files need to be installed in the root directory.
Not sure what is the standard though. Apart from what @jdonald mentioned, for libraries we are using, components has the config files in its root dir. qt, libuvc, assimp has the config files in iib/cmake/<library_name>.
It makes sense to me to move the config files to the root dir though. LeapSerial has the same problem as well.


Book Page - Other Books Carousel Slider component

is the issue resolved?

is the issue resolved?

not yet, if you like you can work on it.let me know to assign you for this issue

can you please describe the issue more...

This is a carousel slider of another category where books are displayed. It needs to be implemented as a component that can be later included in the book page. You can get more ideas from our Figma design. Please check the Figma

ig the component is present in the components folder

ig the component is present in the components folder

Its latest book component is not that, and those components are not properly implemented, in what our Figma file looks like. Only NavBar and Contact Us components are correct.

@Tomkndn any update?


docs: update qsv integration

Thanks for mentioning the project!
The custom keyword & formats are working like a charm and I wanted to update the example using the latest API...

Thank you for your kind words :) I'm delighted to see this feature being used!


fix get voice failed

ref: https://github.com/SchneeHertz/node-edge-tts/commit/27b0207dc7c41bcc924a79b8ed3d6ae70fb3b8f2#diff-24980cd7d7ee914a5d04fa2334d92421d40115ba11035eeed7f2ea7dfa434ae9R2

@baohuiming thanks for contribution.I have fixed by ref python version


Add functionality to open edit contact form

Add functionality to open edit contact form when an existing contact is supplied to openContactForm()

@iarif123 do you know if it's possible to do that same on iOS?

@morenoh149 I'm looking into doing the same for iOS as well.

@iarif123 please attach a screenshot of what this does. This may be in the codebase already as openContactForm https://github.com/rt2zz/react-native-contacts#api

@morenoh149 The existing form allows for adding a new contact, but not updating an existing contact. This PR adds the ability to open the contact form with the contact details supplied and it is an editing action instead of creating a new contact.
I have added the same feature to iOS but there is a problem I'm still working on and no tests yet.
If you are interested you can checkout https://github.com/bjacog/react-native-contacts
I have also had to add a listener for contacts changing to know when the user has edited a contact. On Android this can be achieved with an AppState listener as a new intent is launched but on iOS we are presenting a ViewController so the user never left the app.
I am no objective-c expert, any cc is welcomed, especially regarding handling viewcontrollers.
If anyone has experience with viewControllers and the actions shown at the top, I would appreciate any guidance as to how you get a cancel button to appear. You have on on the contact form, but when I launch the same viewController with forContact, there is no cancel button.

@iarif123 I had ran into problems using the contact edit on<EMAIL_ADDRESS>and had to add:
editIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Before the editIntent is started.
I'm not sure why the error did not happen before, as it seems it should have complained about this earlier.


docs: update and remove broken links

thank you @bozaci for doing the work and raising this and thank you @bigsergey for reviewing in my absence
<3


feat: show testcontainers using oci image as fixture

I had a request from a client today to see an example like this. I suspect it will be widely useful to see an e2e test that can coordinate our java, python, and java OCI containers we build in this repo.

Type of change

Documentation (updates to documentation or READMEs)

Test plan
bazel test ...

@f0rmiga This is what clients asked for. If they build an image in their monorepo, how do they use it in an integration test fixture? They want to see them together.

I understand this is desirable, but in the same way that you removed Gazelle from this example, I don't think we should do integration. I can see this being an example on its own.

I can be convinced of the contrary...

No I agree as each example gains features it gets harder to navigate and understand each bit in isolation

I'll put this in https://github.com/aspect-build/bazel-examples/pull/223 instead, it's going to be a big one


Support other types for expressions and dynamic appliers

The goal of this PR is to get @kszucs's work, which updates this repo to "support user defined python classes (not just named tuple) and dynamic appliers", in a spot to merge into the main repo. @kszucs if you prefer me not to include these changes in a PR, let me know, I am happy to add my own changes on the main here. I opted to build them off of yours because you had already done some work here and I didn't want to cause a merge conflict if you later decided to merge them upstream.
The TODO items before this is ready for merge currently are:

[x] See if it is possible to avoid the change making Subst.vec public
[x] Keep package named snake-egg instead of egg (Can switch to egg if folks prefer. There is already an egg pypi package, so the package name would have to be different).
[ ] Update the existing static typings to include new features
[ ] Make sure the tests pass in CI
[ ] Extend the ability to accept various types by including a way to specify different construct/deconstruct functions, keeping it backwards compatible with @kscucs's definition by using those as default.
[ ] Possibly start adding some basic documentation that could then be refactored into a full sphinx doc later.

Happy to chat more if anyone else has thoughts here.

@saulshanabrook thanks for pushing it uostream, I didn't have time to finalize it.
I suggest to either remove or replicate the ibis tests (though I can keep my ibis branch for now). If ibis ends up using egg, then we will maintain those tests in ibis.
Let me know if I need to help with anything!

@kszucs Sounds good! I will replace the ibis tests with some others using the dynamic applier. If you have any ideas on a use case here, feel free to suggest them, or else I will try to think of one.
Thanks for your work on this!

@kszucs I had a question about the EGraph class you defined in Python. It subclasses the rust class PyEGraph and overrides the extract method, which seems to limit it to one arg and return the extracted value individually, instead of in a list.
I am tempted to just update the rust function to extract only one instead, or is there a reason to update it in a subclass?

While having a pure python wrapper class is not mandatory in that case, it enables easier development in the future, for example certain methods could be directly implemented in python without touching any rust.

@kszucs Yep that makes sense about having a pure python wrapper, I plan on keeping that.
I meant in the particular case of the EGraph.extract method, if it was OK to move that logic back to rust, so we don't have two different method definitions.

@mwillsey This is ready for review. I updated the description with a number of possible future changes not included in this PR.

This looks amazing!

Uh oh, the CI failed on merge. @saulshanabrook could you check this out? https://github.com/egraphs-good/snake-egg/actions/runs/3482887164

@mwillsey Oh gosh, I am not getting a different error when I test locally!
$ make test stubtest mypy
. venv/bin/activate && maturin build --release
📦 Including license file "LICENSE"
🍹 Building a mixed python/rust project
🔗 Found pyo3 bindings
🐍 Found CPython 3.10 at /Users/saul/p/snake-egg/venv/bin/python3
   Compiling snake-egg v0.1.0 (/Users/saul/p/snake-egg)
    Finished release [optimized] target(s) in 16.35s
📦 Built wheel for CPython 3.10 to /Users/saul/p/snake-egg/target/wheels/snake_egg-0.1.0-cp310-cp310-macosx_10_7_x86_64.whl
. venv/bin/activate && maturin develop && python snake_egg/tests/test_math.py
📦 Including license file "LICENSE"
🍹 Building a mixed python/rust project
🔗 Found pyo3 bindings
🐍 Found CPython 3.10 at /Users/saul/p/snake-egg/venv/bin/python
Ignoring mypy: markers 'extra == "dev"' don't match your environment

[notice] A new release of pip available: 22.2.2 -> 22.3.1
[notice] To update, run: pip install --upgrade pip
   Compiling snake-egg v0.1.0 (/Users/saul/p/snake-egg)
    Finished dev [unoptimized + debuginfo] target(s) in 1.52s
📦 Built wheel for CPython 3.10 to /var/folders/xn/05ktz3056kqd9n8frgd6236h0000gn/T/.tmpAohsF9/snake_egg-0.1.0-cp310-cp310-macosx_10_7_x86_64.whl
🛠  Installed snake-egg-0.1.0
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "Rewrite zero-add refers to unbound var ?a"', src/core.rs:88:63
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "/Users/saul/p/snake-egg/snake_egg/tests/test_math.py", line 133, in <module>
    rules.append(Rewrite(frm, to, name))
pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: "Rewrite zero-add refers to unbound var ?a"
make: *** [test] Error 1

I will take a look at this. Not sure why it's failing now and wasn't before... Maybe some dependency got updated in some way?


Comments on review should have the same sha

Restore #13217

Whilst the migration was broken the correct solution should have been to no-op the migration not revert the whole commit.
In any case hopefully this fixes the migration.

CI randomly failed but may not relate to this.

Unfortunately the mssql code is incorrect

mssql: Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

🚀

This may have caused a regression in 1.13 #13683. Could someone have a look at that?


Cin spark bench/multi submit bug

added support for removing tmp files
minor refactoring of a few things...feel free to not merge

Codecov Report

Merging #55 into develop will increase coverage by 0.06%.
The diff coverage is 93.1%.

@@             Coverage Diff             @@
##           develop      #55      +/-   ##
===========================================
+ Coverage    82.77%   82.84%   +0.06%
===========================================
  Files           30       30
  Lines          540      548       +8
  Branches        17       17
===========================================
+ Hits           447      454       +7
- Misses          93       94       +1

Impacted Files
Coverage Δ

...ktc/sparkbench/workload/MultipleSuiteKickoff.scala
100% <100%> (ø)
:arrow_up:

...ibm/sparktc/sparkbench/workload/SuiteKickoff.scala
100% <100%> (ø)
:arrow_up:

...parktc/sparkbench/sparklaunch/ConfigWrangler.scala
100% <100%> (ø)
:arrow_up:

...m/sparktc/sparkbench/sparklaunch/SparkLaunch.scala
75% <85.71%> (+4.16%)
:arrow_up:

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 ab36275...00c8a9b. Read the comment docs.


Bad parsing?

This doesn't get well parsed, IIUC:
Byte::= [ #x00 - #xFF ]
Should be a CharCode range. And each CharCode gets expanded to 4 digits.

This looks like ignorable whitespace used in a CharClass definition, which it does not support: the relevant grammar rules are tagged /*ws: explicit*/. What you want is
Byte::= [#x00-#xFF]

Even then, the result ends up being [#x0000-#x00FF] instead of [#x00-#xFF], and overruns the box in the diagram.

Admittedly adding the leading zeroes is somewhat arbitrary, so I will remove them somtime soon. But I can't see where it overruns the box. The SVG is rendered OK on the latest of Firefox, Chrome, and Opera, and the PNG looks OK as well.

Could you please provide some more details of where and what you are observing?

Firefox 77.0b9, macOS 10.15.3

But that is as it appears in the "view diagram" tab. The downloadable diagrams do look OK.

Predending of leading zeroes has been removed in the source code, so these will vanish in the next release.
The generated SVG is always the same, it does not depend on the environment where it is rendered. But it may look slightly different on different browsers, even on the same OS, or on different versions of the same browser, because of differences in font handling.
Usually the differences would be a few pixels only, but in this case it looks like a font of a larger size has been picked. Compared to usual sizes, the screenshot shows the box scaled up to 220%, but the font scale is 250-260%.
However this seems to be a problem of this specific OS and browser combo. I do not own a Mac myself, but I have asked friends to check on several Macs and the effect did not reproduce anywhere. The closest was Firefox 76.0.1 on a 16" Macbook Pro running Mac OS 10.15.5, and it was fine there as well.
There is nothing for me to do here.


Hide Folder icons is not working

I think I have the setting correct but I still see the folder icons. It looks like this was an issue in the past and was closed. I created a new issue because it looks like it's back.

Cannot reproduce. Did you run >Icons: Apply Icons Customization

Running Apply Icons Customization did the trick, thanks! Somehow I missed that step.


Example data/models caching and download

We need an example TERRA model and some example thermodynamic lookup tables.  It would be good to have a robust mechanism to cache these downloads too.

It looks like we should be using pooch for this: https://pypi.org/project/pooch/ - it's what scipy uses so we should be okay adding the dependancy. I guess we'll need a thin wrapper to set things like the cache directory. It supports zenodo, so we should probably put files there (or in a dedicated separate github repository).

Could you remind me if we decided that we would host a whole example model (eg one of the mt=128 resolution simulations?) If so should I send one over to you @andreww to be added to zenodo?

@jamespanton93 - I think we talked about a downsampled example but I can see the value of a single full resolution case. How big is it (in total and per file)? I'm currently serving these via figshare which has a 20 GB limit (and practically we need to upload via a web browser, which may struggle below that). Or you could upload (no reason why we cannot get data from multiple places). Maybe something to discuss on Wednesday.
The other thing we should think about is where we actually want the downloaded material being stored. It's currently in a directory in wherever the OS defaults to for it's cached data. We could cache it alongside the module install (I think) or we could choose somewhere else. It's really a question of what we think the user may want to do with the downloaded example files.

For the mt=128 simulations that I have been mostly running, each of the .comp files is ~2.9 MB making the total about 370 MB, and each of the .seis files is ~3.3 MB, making the total about 420 MB. We could also include an example for files which are just a single layer - these are only 41 KB each so the total for a set of these would be just over 5 MB.

This may be too large to run (even though it's not too large to store) @eejwa will create a downsampled model to use.

Closed by #116.

We have decided to upload a lower-resolution or downsampled model file to preserve people's and CI's bandwidth.  @eejwa will do this.


Greenfield Nuxt3 Project - only flex related classes survive the purge

Version
@nuxtjs/tailwindcss: 5.3.3
nuxt: 3.0.0-rc.11
Reproduction Link
The project in question - its a brand-new nuxt project so there really isn't much at all: https://github.com/ndom91/go-ios-web/tree/main
Vercel preview deploy - same outcome: https://go-ios-d06yummlv-ndom91.vercel.app/
Steps to reproduce

Attempt to use any tailwindcss classes in any of the layout/*, pages/*, components/* files listed in the content array.
In development (not sure about Prod) only flex related classes (like flex-col, justify-content, etc.) seem to be kept after the purging :joy:

What is Expected?
All tailwindcss classes used in files defined in the content array should be available.
What is actually happening?
This is the strangest bug I've seen in a while. So I'm trying to use naive-ui and tailwindcss together.
However, even without naive-ui imported in any page, I cannot get any of the tailwind classes to survive the culling..
My tailwind.config.ts looks like this:
/** @type {import('tailwindcss').Config} */
export default {
  presets: [],
  content: [
    './components/**/*.{vue,js,ts}',
    './layouts/**/*.{vue,js,ts}',
    './pages/**/*.{vue,js,ts}',
    './composables/**/*.{vue,js,ts}',
    './plugins/**/*.{vue,js,ts}',
  ],

  plugins: [],
}

However, when using class="h-full", for example, in pages/index.vue, it does not survive the purge and is not avialable on the page.
There are however, random classes (all related to flex it seems) that do work :thinking:
However, using w-full or bg-red-500 in that same exact class attribute on the same element, does not work.

Source: https://github.com/ndom91/go-ios-web/blob/main/layouts/default.vue

Sidenote: I realise I have tailwindcss installed additionally here. When not installed, I kept getting errors about tailwindcss/nesting missing (exactly like here).

Omg, so I also had vue-use installed, but not imported anywhere. After uninstalling that, it seemed to work somehow!


bluetooth: host: Split cmd complete & cmd status to separate pool

The default main branch, cmd complete & cmd status use common normal net_buf pool, will be increase dead-lock, so split it to separate.
This always ensures that the event flow is not blocked.

I'm not yet sure whether this is a good change or not.
Do you have any logs or (even better) some tests that show the issue you are trying to solve, which shows that the issue is solved by this PR?

https://github.com/zephyrproject-rtos/zephyr/pull/74287#issuecomment-2180290543
Maybe this answer by @alwa-nordic  better.

Do we need a pool for Command Complete? I think we don't need the new pool and can save the memory by putting Command Complete events into the single-buffer sync_evt_pool.

Three reasons to keep a separate pool for command complete events:

Please do not couple command complete event and bluetooth connection, since sync_evt_pool only used with connection, but command will use in any scenes. and also the default size of SYNC_EVT_SIZE less than 68, this does not save memory, but it is more likely to cause dead-lock anyway.
Currently normal event pool will also use by extended advertising event report, this is a huge activity, Also other events such as periodic advertising report. So for command complete and command status also use same normal pool not a good way.
The current design will add about 140 bytes of RAM overhead, but it ensures relative safety, so I think it is worth it and change this way will not be noticeable to users.

The current implementation only needs one event buffer, since we copy out the data immediately in hci_cmd_done. But even with the changes proposed in #74287, #74287 (comment) says we will never block the buffer.

I fully understand that currently only one is supported, but the current configuration is two:
config BT_BUF_CMD_TX_COUNT
	int "Number of HCI command buffers"
	default 2
	range 2 64
	help
	  Number of buffers available for outgoing HCI commands from the Host.

Another advantage of using two here is that we can always ensure that there is always a free buffer for command complete event , so I use K_NO_WAIT instead of timeout, to avoiding dead-lock.

but it is more likely to cause dead-lock anyway

What deadlock are you hinting at?

even in some extreme scenarios, if the Controller reports a message inexplicably, we can still tolerate the error., so I use K_NO_WAIT instead of timeout, to avoiding dead-lock

Can you elaborate on this deadlock scenario? What sequence of events/data would get us into this state. Have you seen it in manual testing?

even in some extreme scenarios, if the Controller reports a message inexplicably, we can still tolerate the error., so I use K_NO_WAIT instead of timeout, to avoiding dead-lock

Can you elaborate on this deadlock scenario? What sequence of events/data would get us into this state. Have you seen it in manual testing?

Please see:https://github.com/zephyrproject-rtos/zephyr/pull/68008#issuecomment-1916341059
In this PR, allocate for command complete events will not block at all, because use k_NO_WAIT.

but it is more likely to cause dead-lock anyway

What deadlock are you hinting at?

https://github.com/zephyrproject-rtos/zephyr/issues/70153


Simplify and speed up transaction verification

I am not 100% sure about the design, but it gets rid of the double-lookup, and more importantly it makes sure code doesn't accidentally forget to call one of two functions (so it only has to call one function instead).

having is expensive

having what?

I know how to fix this, will do monday.

I need to re-add the old unittest and just modify it a bit.
I've pushed a change (hopefully) fixing the code, but I can't properly test it yet because I'm using Windows (well, I'm using WSL1.0 and the test-suite failes there regardless of my changes). Stay tuned..

The bug was at my end. Fixed.


Relation widget misbehaviour when searched elements have identical value in valueField

Describe the bug
The relation widget doesn't allow the user to select an element in the dropdown result list if there is one element higher up with the same value in its valueField. It will display the first element with the same value instead of the one you clicked on.
Then, if you open the dropdown list again, all the options with the same value in valueField appeared as selected (blue background, cf. screenshot below).
If you use the multiple choices configuration and repeat the same process, it doesn't work either: if you click on a project at the bottom of the list, if there was another project above with the same value, the widget will select the highest in the list. If you click again on the drop-down, your initial choice will not show at all. It won't be offered as an option. Only the other projects with values that are different from the one already selected will show in the list.
To Reproduce

Create a collection with a least two fields like these :
ex:

- name: "projects"
  label: "Projects"
  label_singular: "Project"
  folder: "content/project"
  create: true
  extension: json
  identifier_field: title
  fields:
    - { label: "Project name", name: "title", widget: "string"}
    - label: "Project's rating"
      name: "rating"
      widget: "number"
      valueType: "float"
      min: 0
      max: 5
      step: 0.1
      default: 0

Go to your netlify cms admin dashboard and add at least two projects to your projects collections. Make sure to set the same rating for two of the projects. ex: 4,6

Create a collection with a field that uses the relation widget like this :

- name: "projectPage"
  label: "Project Pages"
  folder: "content/projectPage"
  create: true
  extension: json
  identifier_field: project1logo
  fields:
    - label: "Project 1 Logo"
      name: "project1Logo"
      widget: "image"
    - label: "Project 1 Rating"
      name: "project1Rating"
      widget: "relation"
      collection: "projects"
      searchFields: ["title"]
      valueField: "rating"
      displayFields: ["title", "rating"]

Save your config changes and go back to netlify cms admin dashboard.
Create a new project page in your Project Pages Collection.
Go to the relation widget "Project 1 Rating" and try to select a project that has the same rating value as one above it in the dropdown list (cf. screenshot).
The widget will display the name and rating of the project with the same rating (valueField) that was the highest in the list.
Click again to show the dropdown list and you'll see that several projects are selected instead of the one you clicked on.

If you change your config file and add "multiple: true" to your Relation widget and then go back to the admin dashboard, you will be able in theory to select several projects in the "Project 1 Rating" widget. If you try again to click on a project at the bottom of the list, if there was another project above with the same value, the widget will still display the highest in the list. If you click again on the drop-down, your initial choice won't be offered as an option. Only the other projects with values that are different from the one already selected will show in the list.

You can use React Dev Tools to  check the metadatafields of the relation widget React component, you can see that the project's data that you first selected is well registered in there. But the children of the component have the highest project data registered as value and display it.

Expected behavior
The relation widget should allow the user to select and display any element listed even if several elements have the same value in their valueField.
Screenshots

Applicable Versions:

Netlify CMS version: 2.9.7
Git provider: Gitlab
OS: MacOs Mojave
Browser version : Chrome 76.0.3809.100
Node.JS version: v10.15.1
gatsby: 2.13.83
gatsby-plugin-netlify-cms: 4.1.11

Additional context
Using Gatsby

IMHO I don't think this is an issue with the widget, the widget uses of the selected value to identify the right option and in this case, would always be the first match.
I suggest you try making the dropdown option unique. For example, over here https://medium.com/@nidhinkumar/react-select-852e90d549df the user is making use of timestamp to achieve that.

Yep, if valueField is not unique, you're creating a relation that could match any entry with that value, so the widget is behaving within reason.

Hey. Thanks for your answers. The searchField is the title, not the rating. The titles are all different and the relation should be based on them not on the value field. If it was a blog and I were trying to show a writer's information based on his/her email address, and two writers happen to have the same age, profession or name, the widget would not be linked to the writer I searched for with the searchfield (email address). A "relation" implies a connection to an object based on the searchfield as an identifier, and then you display whatever value you choose from this item. If the widget is using the value as the identifier, then it's not a relation widget but just a search widget based on value and the searchfield would be useless since it's not returning the item that I search for.

Consider the nuts and bolts. Netlify CMS is only a UI, it stores everything right in your files via Git. If we only stored the rating in your file, how would we know which project a rating was related to? Another CMS could do this pretty simply, but it would have a relational database running on a server somewhere. We're trying to forego that.
So relations require unique values. That means values that must be relations should be stored separately and referenced via a unique identifier (probably not even the title because that could change). Ideally you would have a file with an array of all project objects, each including a unique id, but we're not yet able to relate to a file of values that way - the current approach would be to place each project into its own entry, including a unique id field, and set the relation widget to search that collection of projects.


Add section on how to file security bugs

Filed on behalf of @blowdart

Hi @terrajobst, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.
TTYL, DNFBOT;


Bump bundler to 1.10.0 for ChefDK

I don't know for certain (because the bug is intermittent), but I'm hoping this fixes the intermittent errors we see like:
C:/opscode/chefdk/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:762:in `block in _resort!': undefined method `name' for nil:NilClass (NoMethodError)

Note however, that this change requires https://github.com/chef/chef/commit/8e3e5248ba0d2fbae7aba15129b635ee6c2587c6 because installing gems inside a bundler'd ruby doesn't work in this version of bundler.
Thoughts?
@chef/client-core

Lets give it a shot! :+1:

:+1:

see also #464


Alert users when selected CIS Profile is no longer available for newly selected k8s version on Edit Cluster for RKE2/k3s clusters

Is your feature request related to a problem? Please describe.
Following the implementation of https://github.com/rancher/rancher/issues/40435, cis-1.5 and cis-1.6 CIS Profile options have been replaced with cis-1.23 for k8s 1.25 versions.
However, when editing cluster with k8s <=1.24 with cis-1.5 or cis-1.6 selected and setting k8s version to 1.25+, the selection in "CIS Profile" dropdown stays at the previous value:

Describe the solution you'd like
When k8s versions is switched, check if currently selected CIS Profile is still available. If not:

If the selected k8s version has a single profile, present the user with a modal (?) confirmation stating something like The selected Kubernetes Version no longer supports CIS Profile "{current CIS Profile}"; the selection will be automatically updated to "{new k8s version only supported CIS profile}" as the only profile supported by the selected Kubernetes version. It's recommended to review RKE2 documentation to evaluate the impact of changing CIS Profile. Proceed? with the options "Yes" and "No".
If the selected k8s version has more than one available profile, (this is to be discussed - the only case where it would come up currently is if user first switches to 1.25 and then switches back to 1.24).

Describe alternatives you've considered
N/A
Additional context
N/A

@kwwii & @cnotv to spend more time on the workflow here.

As outcome of this request, we realized that the CIS profile is kept even if not displayed in the UI. The server accept the wrong value regardless.
E.g.:

Pick k8s version v1.24.10+rke2r1
Set CIS profile cis-1.5
Switch to k8s version v1.25.10+rke2r1
CIS profile is keeping value cis-1.5 but displayed as (None)

As final decision for the CIS incompatibility, we will display a banner where the current value is not supported with the current k8s version. The CIS value is going to be kept unchanged.

To don't get it lost, the documentation related to this banner is https://docs.rke2.io/security/hardening_guide

Reopening based on offline discussion regarding including documentation link in the warning banner.

QA TEST PLAN
Scenarios

Scenario
Test Case

1
As a standard user, provision a hardened downstream RKE2 custom cluster with CIS profile cis-1.6 and K8s version v1.24, edit cluster config to update K8s version to v1.25, validate that a warning appears regarding the selected CIS profile not being supported, validate that you can successfully upgrade

2
As a standard user, provision a hardened downstream RKE2 custom cluster with CIS profile cis-1.5 and K8s version v1.24, edit cluster config to update K8s version to v1.25, validate that a warning appears regarding the selected CIS profile not being supported, validate that you can successfully upgrade

3
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.5 and K8s version v1.24, change K8s version to v1.25 and validate a warning appears regarding the selected CIS profile not being supported, choose cis-1.23 and validate the cluster can be successfully provisioned

4
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.23 and K8s version v1.25 and the override checkbox enabled, change K8s version to K3s v1.25, back to RKE2 v1.25 and validate that cis-1.23 remained and the override checkbox is still enabled

5
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.6 and K8s version v1.24, change K8s version to K3s v1.24, back to RKE2 v1.25 and validate that a warning appears regarding the selected CIS profile not being supported

Validated in v2.7-head https://github.com/rancher/rancher/commit/76c5c80bd1069bc14c8961014bd8b559b97bf22a that majority of this is addressed, but some issues are seen. See details below:
ENVIRONMENT DETAILS

Rancher install: Docker
Rancher version: v2.7-head https://github.com/rancher/rancher/commit/76c5c80bd1069bc14c8961014bd8b559b97bf22a
Browser: Chrome

TEST RESULT

Scenario
Test Case
Result

1
As a standard user, provision a hardened downstream RKE2 custom cluster with CIS profile cis-1.6 and K8s version v1.24, edit cluster config to update K8s version to v1.25, validate that a warning appears regarding the selected CIS profile not being supported, validate that you can successfully upgrade
:white_check_mark:

2
As a standard user, provision a hardened downstream RKE2 custom cluster with CIS profile cis-1.5 and K8s version v1.24, edit cluster config to update K8s version to v1.25, validate that a warning appears regarding the selected CIS profile not being supported, validate that you can successfully upgrade
:white_check_mark:

3
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.5 and K8s version v1.24, change K8s version to v1.25 and validate a warning appears regarding the selected CIS profile not being supported, choose cis-1.23 and validate the cluster can be successfully provisioned
:x:

4
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.23 and K8s version v1.25 and the override checkbox enabled, change K8s version to K3s v1.25, back to RKE2 v1.25 and validate that cis-1.23 remained and the override checkbox is still enabled
:white_check_mark:

5
As a standard user, attempt to provision a downstream RKE2 custom cluster with CIS profile cis-1.6 and K8s version v1.24, change K8s version to K3s v1.24, back to RKE2 v1.25 and validate that a warning appears regarding the selected CIS profile not being supported
:x:

VALIDATION STEPS
Scenario 1

As a standard user, navigated to Rancher > Cluster Management > Create.
Provisioned a hardened downstream RKE2 custom cluster with the following cluster configuration:

CIS profile cis-1.6
K8s version v1.24

Validated that the cluster and nodes are Active in Cluster Management and Cluster Explorer.
Validated that all pods in the system project page are up and Active.
Installed the CIS benchmark chart on tis cluster.
Ran a CIS scan and validated that the cluster is hardened.
Navigated back to Cluster Management.
Edited the cluster to upgrade the K8s version to v1.25. Validated that I see the following warning message:

Changed the profile to cis-1.23 and validated that I do not see cis-1.5 or cis-1.6:

Upgraded the cluster and validated that the cluster and nodes have been upgraded to v1.25 in Cluster Management and Cluster Explorer and are Active.
Validated that all pods in the system project page are up and Active.

Scenario 2

Repeated scenario 1, but utilized CIS profile cis-1.5 instead.
Validated that I see all of the same successful results.

Scenario 3

As a standard user, navigated to Rancher > Cluster Management > Create.
Before provisioning a downstream RKE2 downstream custom cluster, selected cluster configuration with the following specs:

CIS profile cis-1.5
K8s version v1.24

Updated the K8s version to v1.25 and noted the following banner:

Updated the profile to cis-1.23 and provisioned the cluster.
Validated that the cluster and nodes came up Active in Cluster Management and Cluster Explorer.
Validated that all pods in the system project page are up and Active.

Scenario 4

As a standard user, navigated to Rancher > Cluster Management > Create.
Before provisioning a downstream RKE2 downstream custom cluster, selected cluster configuration with the following specs:

CIS profile cis-1.23
K8s version v1.25
Enabled the override checkbox

Updated the K8s version to go from RKE2 v1.25 to K3s v1.25.
Reverted the K8s version back to RKE2 v1.25 and validated both the CIS option stayed and the override button is still enabled as illustrated below:

Scenario 5

As a standard user, navigated to Rancher > Cluster Management > Create.
Before provisioning a downstream RKE2 downstream custom cluster, selected cluster configuration with the following specs:

CIS profile cis-1.6
K8s version v1.24

Updated the K8s version to go from RKE2 v1.24 to K3s v1.24.
Updated the K8s version to go to RKE2 v1.25 and validated that a warning appears as illustrated below:

As seen in test scenario 3 and 5, the hyperlink leads to a 404 page, which shouldn't be the case. Everything else looks good, but reopening this issue so that that can be addressed.


Home page content

Option to provide home page content.

You can replace the home page content via the home.html partial as of https://github.com/josephscott/burgontan/commit/e53ef0832e032c05fa3fe70863a3858578ed95ea


Replace pbr in favor of importlib

The importlib module has a metadata.version to retrieve the package version of the given module. This can be used in lieu of pbr for gathering versioning. And since importlib is part of the base Python package in 3.8 and greater, we can drop another dependency.
Closes #839

Note: this is a recreated PR of #840. See that PR for initial comments and review.


Dynamic Sagas

Saga definitions are currently static as a design choice for simplicity.
Should this capability be extended to include dynamic Saga definitions.
This is a fundamental feature that would need some discussion.
Possible options:

Some kind of dynamic saga language.
(Simpler) have some kind of Saga action that can rewrite (part of) the saga graph.
(Simplest) cater for many of the same use cases via sagas within sagas (https://github.com/simplesourcing/simplesagas/issues/24). E.g. branching/conditional sagas could probably be handled this way.

Id be interested in this enhancement, Im looking at simple sourcing and importantly simple sagas for a new application we are building. part of the application is modelled around general journal entries. The requirement is for a dynamic set of debit/credit pairs to complete as an atomic unit. Open to suggestions if this can already be catered for in the current libraries

I think you wouldn't need a dynamic saga for this. You could have a saga consisting of a debit and a credit, and if either fails, the other is reversed.

but if the number of debit and credit pairs within a single "journal" are not known,  would this still apply? For example if I want the below journal examples to occur. In our initial modeling, the credits are acting as disbursements of the single debit amount. The number of and disbursement amount would be determined by applying a configuration provided by an upstream service.
scenario 1:

account
DR
DR

1
13.00

2

10.00

3

1.50

4

1.50

scenario 3:

account
DR
DR

1
100.00

2

50.00

3

25.00

4

15.00

5

5.00

6

5.00

Yes, this would work fine.
This level of dynamism is supported already.
The saga (i.e. the saga graph) is defined at the client side at run time.
In scenario 1 you'd create a saga that debits account 1 and credits 2-4.
In scenario 3 you'd create a saga that debits account 1 and credits 2-6 etc.
As long as the saga coordinator knows about credits and debit actions it should work.
You'd only need a dynamic capability (as in this issue) if the some of the saga actions need to know what the outcome of previous actions were in order to be able to execute.

interesting..ill keep plugging away then :)


[Getting Started with Sass] ISSUE NAME HERE

How can we reproduce this bug?
Try to install the regular foundation-CLI package
Using the command provided after installing latest npm packages.
Write out the HTML (or Inky code) that causes the issue.
sudo npm install --global foundation-cli
What did you expect to happen?
An installation of foundation, in order to run the sass processor, inky markdown, etc.
What happened instead?
npm WARN deprecated<EMAIL_ADDRESS>...psst! Your project can stop working at any moment because its dependencies can change. Prevent this by migrating to Yarn: https://bower.io/blog/2017/how-to-migrate-away-from-bower/
npm WARN deprecated<EMAIL_ADDRESS>please upgrade to graceful-fs 4 for compatibility with current and future versions of Node.js
npm ERR! path /usr/local/lib/node_modules/foundation-cli/node_modules/npm/node_modules/ansistyles
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/usr/local/lib/node_modules/foundation-cli/node_modules/npm/node_modules/ansistyles' -> '/usr/local/lib/node_modules/foundation-cli/node_modules/npm/node_modules/.ansistyles.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
Nothing that i can do from here. Foundation does not "work", not a valid terminal command. So i guess the installation process didn't complete.
FYI i also installed the latest yarn with a quick google search… but i guess it doesnt work that way, in terms of dependencies.
Using terminal on OSX.

Try to remove /usr/local/lib/node_modules/foundation-cli/ directory via sudo rm -rf /usr/local/lib/node_modules/foundation-cli/  then reinstall foundation-cli

Closing as we did not receive any further feedback.