Enable forward authentication for OAuth integration with Traefik

Is your feature request related to a problem? Please describe.
The applications included in ansible-nas have varying degrees of security and hardening. We have a setup to enable any of them to be reverse proxied by Traefik, but not all are well-suited to be exposed and require manual setup of an authentication method for each in potentially different ways.
Describe the solution you'd like
Traefik allows for forward authentication middleware to require authentication before particular backends (old terminology) or routers can be accessed. This can be used to protect any Traefik-proxied application using OAuth authentication when combined with a minimal authentication server like traefik-forward-auth. This would potentially enable single-sign-on for authentication on all ansible-nas applications proxied by Traefik.
Describe alternatives you've considered
Just setting passwords on everything manually I guess. You can also use exclusively VPN access but that is a sort of orthogonal solution and isn't integrated (reasonably so) with ansible-nas anyway.
Additional context
I have a functional branch and draft pull request #427 that works. This adds a new container to the traefik ansible tasks to handle forward authentication as well as a variety of variables to enable configuration of (currently Google-only) OAuth on any application.
Applying forward authentication to a particular app with this setup requires one additional Docker label to be applied:
traefik.http.routers.app.middlewares: "traefik-forward-auth"
My current solution is to add one additional variable analogous to app_available_externally named app_forwardauth_enabled. I then conditionally apply this middleware in ansible using something like this:
traefik.http.routers.app.middlewares: "{{ app_forwardauth_enabled | bool | ternary('traefik-forward-auth', '') }}"
I am very much not an ansible expert, so I am not sure if there is a better way to handle this than just creating a new variable for every existing application and adding the conditional label line to all the tasks. Additionally, I am not sure whether it would be a good idea or not to default applications to be authenticated if you enable forward authentication for Traefik.

To elaborate on the good and bad of using this:
Good:

This kind of setup can, with some simple config, let you protect all of your exposed apps with OAuth authentication.
Gives you a solid additional layer of protection based on software with a good security record if you choose to expose any applications.
This setup (Auth Host Mode) works perfectly with the current subdomain-based assumptions for Traefik and sets up an specific subdomain for authorization (easy OAuth setup) but creates a logon cookie for the base domain allows authentication for all apps with one login/cookie.

Neutral:

Requires per-application configuration/opt-in.

Bad:

Few of the containers in ansible-nas allow, easily or at all, for header-based authentication based on reverse proxies which would let you actually create an SSO environment. For most applications, this means either disabling app-based authentication or requiring two sequential logins (when neither is cookied).
There are some apps for which enabling this could break functionality, primarily applications with frequently-used APIs where clients cannot handle OAuth.

This can be handled on a case-by-case basis by adding forward-authentication rules to allow access to defined API URL patterns. Would require constructing an INI-format file to give to the forward auth container.
Alternatively this can be handled by creating a second router for the API paths with higher priority that doesn't apply the middleware which doesn't require additional config files but does make our ansible tasks label lists longer.


fix: Fargate provider storage size changes don't work

Corrected the logical grouping of the nullish coalescing operator and ternary operator for the ephemeralStorageGiB property.
Ensured that the ephemeralStorageGiB property is correctly set when provided in the props.
This fix ensures that the correct storage value is reflected in the synthesized CloudFormation template.
Prior to this fix the storage value would always be set to 25

Thanks!
Can you give me access to push to the branch to update the unit tests (I think I can't because main branch is locked?)? Or commit this change directly:
 test/providers.test.ts | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/test/providers.test.ts b/test/providers.test.ts
index 5261e36..52c26bf 100644
--- a/test/providers.test.ts
+++ b/test/providers.test.ts
@@ -39,7 +39,7 @@ test('CodeBuild provider privileged', () => {
     Environment: {
       PrivilegedMode: true,
     },
-  }), 2/*runners*/+3/*image builders*/);
+  }), 2/*runners*/ + 3/*image builders*/);

   template.hasResourceProperties('AWS::CodeBuild::Project', Match.objectLike({
     Environment: {
@@ -73,6 +73,7 @@ test('Fargate provider', () => {
   new FargateRunnerProvider(stack, 'provider', {
     vpc: vpc,
     securityGroups: [sg],
+    ephemeralStorageGiB: 100,
   });

   const template = Template.fromStack(stack);
@@ -87,6 +88,7 @@ test('Fargate provider', () => {
         Name: 'runner',
       },
     ],
+    EphemeralStorage: { SizeInGiB: 100 },
   }));
 });

No worries @kichik
I've made you a collaborator of the fork I created - did that fix the issue for you?

I still couldn't push from CodeSpaces but the UI worked 🤷


Solving Issue #1

Edited source code with ES6 features improvement
Added .idea/ to .gitignore

Thanks!


add PyWPS to UbuntuGIS

cc @kalxas, @khosrow, @mipilon
Description
Add PyWPS latest stable to UbuntuGIS lifecycle.
Additional Information
Initial progress: https://launchpad.net/~gcpp-kalxas/+archive/ubuntu/osgeolive/+packages

I will include this new package in OSGeoLive ppa, so it will find its way to UbuntuGIS when 9.5 is released

@kalxas any update on this one?

https://launchpad.net/~ubuntugis/+archive/ubuntu/ubuntugis-testing/+sourcepub/6503469/+listing-archive-extra


Release Process : Profiling and Warning Hunts

Following https://github.com/antoinecarme/pyaf/issues/176 and https://github.com/antoinecarme/pyaf/issues/188 :
Need to run PyAF through a set of profiling tests, to detect possible slow-downs introduced in the latest code changes and new python versions. Use slowmode training (all models activated) as a test.
Warning hunts are also needed (pandas and numpy new versions API changes).
Target Release : 2022-07-14

Warnings report :

~/dev/python/packages/timeseries/pyaf$ ls logs/*.log | wc -l
192

~/dev/python/packages/timeseries/pyaf$ grep Warning logs/*.log | cut -f 2- -d ' ' | sort | uniq -c
      2 DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.
      2 DeprecationWarning: `np.object` is a deprecated alias for the builtin `object`. To silence this warning, use `object` by itself. Doing this will not modify any behavior and is safe.
      3 FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
      4 FutureWarning: The series.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
     48 RuntimeWarning: divide by zero encountered in true_divide
     21 RuntimeWarning: invalid value encountered in double_scalars
     36 RuntimeWarning: invalid value encountered in true_divide
      7 UserWarning: Attempting to set identical left == right == 0.0 results in singular transformations; automatically expanding.
      7 UserWarning: Attempting to set identical left == right == 1.0 results in singular transformations; automatically expanding.
      7 UserWarning: Attempting to set identical left == right == 4.0 results in singular transformations; automatically expanding.

FIXED


Why DLRM Offline scenario used variable query size and specify max-batchsize ?

I thought offline has not latency constraint and only cares about throughput so you are free to use any access pattern with any batchsize ?

I think you are free to change the max batch size to anything you want.

please re-open if needed.


Samsung additional emojis list

Samsung
Samsung, LG #287 and Microsoft #285 make some Unicode characters emojis that are not (yet) recognized by the Unicode Consortium as such. In early 2016 the Emoji Subcommittee attempted to promote (at least some of) these code points, but failed for now.


Vulnerability in librsvg dependency, please upgrade to 0.32.4 (CVE-2023-38633)

Overview
sharp depends on librsvg for rendering SVG input.
A directory traversal vulnerability has been found in some versions of librsvg that could be used by an attacker to read file contents on a local filesystem. This has been assigned CVE-2023-38633.

https://gitlab.gnome.org/GNOME/librsvg/-/issues/996
https://nvd.nist.gov/vuln/detail/CVE-2023-38633

This vulnerability has not yet been assessed for a severity score, but my best guess right now is that this could be classified as a "medium".
Who does this affect?
This vulnerability affects code that uses sharp to process untrusted SVG input from the local filesystem when using a vulnerable version of librsvg.
Buffer and Stream-based SVG input is unaffected.
All other input formats are unaffected.
In summary: if you write untrusted SVG files to a local filesystem before processing them via sharp then you might be affected.
How to resolve this?
Using prebuilt binaries provided by sharp?
Most people rely on the prebuilt binaries provided by sharp. Please upgrade to the latest 0.32.4, which ships with a patched version of librsvg.
A possible workaround for sharp >= 0.31.0 and <= 0.32.3 is to set the VIPS_BLOCK_UNTRUSTED environment variable, which prevents the processing of all SVG input.
Using a globally-installed libvips?
Please upgrade to the latest patch version of librsvg or set the VIPS_BLOCK_UNTRUSTED environment variable.
Alternative workarounds

Low-level control over runtime image loader availability can be made via the sharp.block() function, for example:

sharp.block({ operations: ["VipsForeignLoadSvgFile"] })

Replace filesystem input with Buffer-based input:

- sharp("in.svg")...
+ sharp(await fs.readFile("in.svg"))...

There's a great article from Zac at Canva with more details of this vulnerability.
https://www.canva.dev/blog/engineering/when-url-parsers-disagree-cve-2023-38633/


Minitest/GlobalExpectations autocorrect fails with lambdas

Expected behavior
Autocorrected test should run without the warning
Actual behavior
Test is failing
Steps to reproduce the problem
I inherited an internal gem, that has some minitests with the pattern, that a lambda is defined that has raising code and should verify the correct raise.
require "minitest/autorun"
require "mocha/minitest"

describe 'the test' do
  it 'raises' do
    expected = -> {
      raise ArgumentError.new("foo")
    }.must_raise ArgumentError

    expected.message.must_match(/foo/)
  end
end

This gives the expected warning while running
DEPRECATED: global use of must_raise from test.rb:6. Use _(obj).must_raise instead. This will fail in Minitest 6.
DEPRECATED: global use of must_match from test.rb:10. Use _(obj).must_match instead. This will fail in Minitest 6.

Running rubocop gives the warning
rubocop --require rubocop-minitest --only Minitest/GlobalExpectations test/test.rb
Inspecting 1 file
C

Offenses:

test/test.rb:6:16: C: [Correctable] Minitest/GlobalExpectations: Use _ { -> {
      raise ArgumentError.new("foo")
    } } instead.
    expected = -> { ...
               ^^^^
test/test.rb:10:5: C: [Correctable] Minitest/GlobalExpectations: Use _(expected.message) instead.
    expected.message.must_match(/foo/)
    ^^^^^^^^^^^^^^^^

1 file inspected, 2 offenses detected, 2 offenses auto-correctable

Autocorrect creates the following test:
require "minitest/autorun"
require "mocha/minitest"

describe 'the test' do
  it 'raises' do
    expected = _ { -> {
      raise ArgumentError.new("foo")
    } }.must_raise ArgumentError

    _(expected.message).must_match(/foo/)
  end
end

And this fails with
  1) Failure:
the test#test_0001_raises [test/test.rb:6]:
ArgumentError expected but nothing was raised.

Correcting it to
require "minitest/autorun"
require "mocha/minitest"

describe 'the test' do
  it 'raises' do
    expected = _(-> {
      raise ArgumentError.new("foo")
    }).must_raise ArgumentError

    _(expected.message).must_match(/foo/)
  end
end

works and shows no longer the initial warning by minitest.
RuboCop version
❯ rubocop -V --require rubocop-minitest
1.20.0 (using Parser <IP_ADDRESS>, rubocop-ast 1.11.0, running on ruby 2.7.4 x86_64-darwin20)
  - rubocop-minitest 0.15.0

I also did a full rubocop autocorrect, which created
require 'minitest/autorun'
require 'mocha/minitest'

describe 'the test' do
  it 'raises' do
    expected = _ do
      lambda {
        raise ArgumentError, 'foo'
      }
    end.must_raise ArgumentError

    _(expected.message).must_match(/foo/)
  end
end

also failing with
  1) Failure:
the test#test_0001_raises [test/test.rb:6]:
ArgumentError expected but nothing was raised.


Detect furry scum

Detects incoming furry scum and tells them where they can do with themselves.

not fallproof enough. need to detect a furry from smell instead

sad.


Firefox Fix: change host to match Firefox iOS app change

There was a change to the Firefox iOS app where linking now requires a host of "open-url". This change broke linking to firefox from newsblur and this PR addresses the issue.
The corresponding code in Firefox is here: https://github.com/mozilla-mobile/firefox-ios/blob/master/Client/Application/AppDelegate.swift#L393

Sweet, this will be in the next release. Although I don't have anything else going out in an iOS release, so it may take a little bit.

Thanks!


Can't debug Django application when both in the wheels and the reload experiment

Environment data

VS Code version: 1.41.1
Extension version (available under the Extensions sidebar): 2020.2.58744-dev
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): 3.7.3
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): venv

Actual behaviour
Debug session doesn't seem to start
Steps to reproduce:

Open a Django application and make sure you can run it by doing python manage.py runserver
Add this configuration to the launch.json file:

{
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}\\manage.py",
            "args": [
                "runserver",
                "--noreload"
            ],
            "django": true
        }
    ]

Make sure you are in the Reload and Wheels experiment:

    "python.experiments.optInto": ["PtvsdWheels37 - experiment", "Reload - experiment"]

Try to debug the application. This is what I see:

Logs
Output for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)
User belongs to experiment group 'ShowPlayIcon - start'
User belongs to experiment group 'ShowExtensionSurveyPrompt - enabled'
User belongs to experiment group 'DebugAdapterFactory - experiment'
User belongs to experiment group 'PtvsdWheels37 - experiment'
User belongs to experiment group 'Reload - experiment'
> conda --version
> pyenv root
> python3.7 -c "import sys;print(sys.executable)"
> python3.6 -c "import sys;print(sys.executable)"
> python3 -c "import sys;print(sys.executable)"
> python2 -c "import sys;print(sys.executable)"
> python -c "import sys;print(sys.executable)"
> py -3.7 -c "import sys;print(sys.executable)"
> py -3.6 -c "import sys;print(sys.executable)"
> py -3 -c "import sys;print(sys.executable)"
> py -2 -c "import sys;print(sys.executable)"
> c:\Users\luabud\Apps\tweeter3-master\.venv\Scripts\python.exe -c "import sys;print(sys.executable)"
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe info --json
Starting Jedi Python language engine.
----------Generating Tags----------
C:\Users\luabud\Downloads\ctags58\ctags58\ctags58.exe --options=c:\Users\luabud\.vscode\extensions\ms-python.python-2020.2.58744-dev\resources\ctagOptions --languages=Python --exclude=**/site-packages/** -o c:\Users\luabud\Apps\tweeter3-master\.vscode\tags .
> ~\Downloads\ctags58\ctags58\ctags58.exe --options=c:\Users\luabud\.vscode\extensions\ms-python.python-2020.2.58744-dev\resources\ctagOptions --languages=Python --exclude=**/site-packages/** -o c:\Users\luabud\Apps\tweeter3-master\.vscode\tags .
cwd: c:\Users\luabud\Apps\tweeter3-master
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe env list
> c:\Users\luabud\Apps\tweeter3-master\.venv\Scripts\python.exe c:\Users\luabud\.vscode\extensions\ms-python.python-2020.2.58744-dev\pythonFiles\testing_tools\run_adapter.py discover pytest -- --rootdir c:\Users\luabud\Apps\tweeter3-master -s --cache-clear tweeter
cwd: c:\Users\luabud\Apps\tweeter3-master
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe info --json
> ~\AppData\Local\Continuum\anaconda3\Scripts\conda.exe env list

Output from Console under the Developer Tools panel (toggle Developer Tools on under Help; turn on source maps to make any tracebacks be useful by running Enable source map support for extension debugging)
error.log

It looks like this has something to do with Django version - I was using an older one that I already had installed, but a clean venv with the most recent Django repros.

Root cause: https://github.com/microsoft/debugpy/issues/42


PubSub vulnerability: not binding between command name and paramters

Current design of PubSub procedure is:

Client sends Interest /repo-prefix/command/notify with client-prefix and id.
Repo sends Interest /client-prefix/msg/id.
Client responds to step-2 Interest with a Data packet containing command parameters.
Repo responds to step-1 Interest to acknowledge receiving the command.

In this procedure, there is no crypto binding between command name and parameters.
Consider this scenario:

Alice sends Interest /testrepo/insert/notify (/alice, 1).
Eve blocks this message, and sends Interest /testrepo/delete/notify (/alice, 1).
Repo sends Interest /alice/msg/1.
Alice responds to step-3 Interest with Data containing /packet-name.
Repo verifies step-4 Data, and responds to step-2 Interest.

The result is:

Instead of inserting /packet-name, the repo deletes this Data.
Alice would notice that step-1 command was not answered, but cannot tell whether it's a possible attack or a packet loss.

To solve this problem, /client-prefix/msg/id Data should contain the command verb. On the other hand, the notify Interest does not need to contain the command verb.

To solve this problem, /client-prefix/msg/id Data should contain the command verb. On the other hand, the notify Interest does not need to contain the command verb.

Seems that the notify interest still needs to contain the command verb? Otherwise this interest wouldn't be routed to the repo.

The notify Interest is just /repo-prefix/notify.

The notify Interest is just /repo-prefix/notify.
Payload of the msg Data contains a TLV element Verb that indicates what commands it is.

Seems that what you're suggesting to use PubSub in a different way to avoid vulnerability, instead of fixing the vulnerability in PubSub itself? Specifically,

Currently the repo subscribes to /repo_prefix/insert and /repo_prefix/delete, which are two separate topics.

What you're proposing is to have repo subscribe to a single topic /repo_prefix, and put the command verb in the msg itself.

You avoid the vulnerability by using 1 topic only. But I think a better way is to establish the binding between topic and msg in the PubSub directly, which can be done by:

When the publisher (application) calls publish() and sends the notify interest, it remembers the mapping between nonce and topic.

The subscriber (repo) receives the notify interest, and sends the msg interest. In the msg interest, it includes in the interest the topic name. For example, /<publisher_prefix>/msg/<topic>/nonce.

When the publisher receives the msg interest, it checks the interest has the expected nonce-topic mapping.

This makes sense too.
The topic would have multiple components such as testrepo/insert, not a single component.
The publisher doesn’t need to remember any mapping: they can simply generate this Data in its application cache, to answer any msg Interest.

Fixed with https://github.com/JonnyKong/ndn-python-repo/commit/3fd3c4769e77c79f595b0e375b4dca0b2f54a701.
When the publisher calls publish(), it saves a copy of the data in the application cache to answer msg interests.


"smart_label method undefined" message

When I run examples/asf.rb (./myfilter.rb) I get:

myuser@MACHINE:~/my-mail-filters/dfefe5565260c07f378d master
$ ./myfilter.rb
./myfilter.rb:25:in `block (2 levels) in <main>': undefined method `smart_label' for #<GmailBritta::Filter:0x000006002f4760> (NoMethodError)
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter.rb:159:in `instance_eval'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter.rb:159:in `perform'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter_set.rb:63:in `filter'
from ./myfilter.rb:22:in `block in <main>'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter_set.rb:71:in `instance_eval'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter_set.rb:71:in `perform'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta/filter_set.rb:28:in `rules'
from /home/myuser/.gem/ruby/2.1.0/gems/gmail-britta-0.1.6/lib/gmail-britta.rb:29:in `filterset'
from ./myfilter.rb:20:in `<main>'

Eep, that sounds weird. I can't reproduce this on latest master; what's the exact version of gmail-britta you're on?
Speaking of, I should cut a new release with all these changes. I'll update here when the new release is out.

I pushed a new release, 0.1.7, to rubygems.org now. I'd really appreciate if you could try with that version! (-:

Hi sorry for being so late I was in vacations and barely had a computer at hand: Good news is I confirm version 0.1.7 to work with the smart labels now! Thanks for this great software!

Excellent, glad it works! (:


DefaultCPUAllocator: can't allocate memory: you tried to allocate<PHONE_NUMBER> bytes. Error code 12 (Cannot allocate memory)

During training, it works fine. When it comes to evaluation and testing, it always show me this error?
What does this mean? Have anyone faced the same issue?

The issue is that It needed more GPUs. I had a single Nvidia Tesla T4. Now with 4 Tesla T4 GPUs, it is working as expected. Thanks!


build: bump @angular/cdk, material, cli to 17.3.3 and core to 17.3.4

PR Checklist

[ ] Unit Tests have been added for new changes
[ ] API tests have been updated if applicable
[ ] All commented code has been removed
[ ] If you've added a dependency, you've ensured license is compatible with Apache 2.0 and clearly outlined the added dependency.

What are you changing?

Anything the reviewer should know when reviewing this PR?
If the there are associated PRs in other repositories, please link them here (i.e. open-amt-cloud-toolkit/repo#365 )

:tada: This PR is included in version 3.5.5 :tada:
The release is available on:

GitHub release
v3.5.5

Your semantic-release bot :package::rocket:


Delete users

A part of: Trello
We are currently migrating features from our PaaS based
account-manager-prototype
to account-api.
Accounts API now acts as an additional store of user data. When a user
deletes their account through the account manager we require an
authenticated endpoint that will forward the request to account-api so
we can remove their data there too.

also woops forgot some docs.
Added in a new commit

🤔 odd CI just showed a test faiure:
https://ci.integration.publishing.service.gov.uk/job/account-api/job/delete-users/4/console
But then when I rebuilt it worked, looks like we've got a very occasionaly flakey test on that PUT endpoint...


Controlnet_Tile Visual artifacts during stylize

Hi,
Thank you so much for your work on this! I'm running into a weird issue, specifically, after stylizing a video and it gets to the upscale part, I get a lot of weird visual artifacts.
Example original stylize vs c-net tile:

prompt.txt
Tried using the same tile cnet on webui and it works well with the same settings..Any help would be greatly appreciated!

        "1": {
            "steps": 20,
            "guidance_scale": 3.0,        # This is indeed too low, isn't it?
            "width": 768,
            "height": 960,
            "length": 36,
            "context": 8,
            "overlap": 0,                # Use the number of contexts divided by 4. If it is 0, will it cause quality problems?
            "stride": 0,
            "controlnet_tile": {
                "enable": true,
                "use_preprocessor": true,
                "guess_mode": false,
                "controlnet_conditioning_scale": 0.5,   # I think the main cause of the problem is that this value was lowered from 1. There's no advantage to setting it to 0.5 at the time of the upscale.
                "control_guidance_start": 0.0,
                "control_guidance_end": 1.0,
                "control_scale_list": []
            },
            "controlnet_ip2p": {
                "enable": false,
                "use_preprocessor": true,
                "guess_mode": false,
                "controlnet_conditioning_scale": 0.5,
                "control_guidance_start": 0.0,
                "control_guidance_end": 1.0,
                "control_scale_list": []
            },
            "ip_adapter": false,
            "reference": false,
            "interpolation_multiplier": 1
        }

I find that controlnet_condition_scale to be 0.8 to get slightly better results.

Hi, Thank you so much for your work on this! I'm running into a weird issue, specifically, after stylizing a video and it gets to the upscale part, I get a lot of weird visual artifacts. Example original stylize vs c-net tile:

prompt.txt
Tried using the same tile cnet on webui and it works well with the same settings..Any help would be greatly appreciated!

You need to consider the ratios of your upscale, you need to stick to 1x,1.5x,2x within the same ratio resolution.

Thank you both @s9roll7 @Cubey42. After changing guidance_scale to 10, overlap so it's context/4 and controlnet_conditioning_scale to 0.8/1 it seemed to be pretty much the same (mostly), but once i've made sure to also keep the aspect ratio altogether it seems to be pretty much back on track:

There seem to still be some visual artifacts but at this point this could very much be the cnet/model/mm/cfg but I am still experimenting and looking for that sweet spot and will share once I've found it!

Much appreciated, thanks again!


doctor(webpack): Nuke all the dependencies

⚠
DO NOT MERGE
⚠

WE FOUND IT!

WE FIXED IT AS WELL NOW!


upgrade odb

odb isn't yet available in maven central, sonatype has some sync issues atm...

https://status.maven.org/


updated dark mode styling for programs page and updated navbar styling (Fix for PR-#1026)

This PR updates the programs page background and text to be dark mode compatible without unintended commits .
This PR fixes #994
Notes for Reviewers
The styling of navbar has been slightly changed, I have checked it across multiple pages and removed margin where it was being used. In case there are places where the styles need to be updated do let me know and I'll fix it asap. Also I have made changes in the youtube iframe card embedded in the programs to be responsive as it was breaking in certain places. The project maintainers list have been updated to use ul, li tags as requested
Signed commits

[x] Yes, I signed my commits.

Looking great to me, @Avi-88 👏

Thanks ! , Yay, first PR for the layer5 website

🎈 Yay! 😄


mastodon: 4.1.6 -> 4.2.0

Description of changes
This is a draft PR with the package update for people that want to test the newest release candidate.
I would switch it to non-draft as soon as upstream releases 4.2.0
Feel free to push to this branch or send me link to your commits so I can pull them in.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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/)
23.11 Release Notes (or backporting 23.05 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.

Is update.sh script working fine? I get an error:
./update.sh --owner mastodon --repo mastodon --rev v4.2.0-beta2
Fetching source code v4.2.0-beta2
Creating version.nix
error:
       … while calling the 'derivationStrict' builtin

         at /builtin/derivation.nix:9:12: (source not available)

       … while evaluating derivation 'source-patched'
         whose name attribute is located at /nix/store/ff5rgk5hs6r2gxld6vfzn1gwy1rpn4nc-nixos-22.05.git.644d89c74b6/nixos/pkgs/stdenv/generic/make-derivation.nix:205:7

       … while evaluating attribute 'src' of derivation 'source-patched'

         at /nix/store/ff5rgk5hs6r2gxld6vfzn1gwy1rpn4nc-nixos-22.05.git.644d89c74b6/nixos/pkgs/build-support/trivial-builders.nix:762:14:

          761|     }: stdenvNoCC.mkDerivation {
          762|       inherit name src patches postPatch;
             |              ^
          763|       preferLocalBuild = true;

       (stack trace truncated; use '--show-trace' to show the full trace)

       error: hash 'null' does not include a type, nor is the type otherwise known from context

Update Ruby to 3.2?

also upstream bumped nodejs to version 20 and we are currently using 18.

I updated to the actual release and started using NodeJS 20 and Ruby 3.2, even tough I don't really see the need here to override the versions used by Nixpkgs, as long as they are supported by upstream.
@Izorkin I managed to run the script like this: ./update.sh --rev v4.2.0
One remaining issue is the streaming API. We have to reflect the change in https://github.com/mastodon/mastodon/pull/24655, meaning that we have to remove STREAMING_CLUSTER_NUM and take care of creating systemd units per streaming instance. Upstream uses systemd unit templating for this, but I think this doesn't make sense on NixOS? The path forward would probably to create systemd units by ourself appropriately.

@Izorkin I managed to run the script like this: ./update.sh --rev v4.2.0

This variant doesn't work for me. My worked variant:
  sh pkgs/servers/mastodon/update.sh --rev v4.2.0

One remaining issue is the streaming API. We have to reflect the change in mastodon/mastodon#24655, meaning that we have to remove STREAMING_CLUSTER_NUM and take care of creating systemd units per streaming instance. Upstream uses systemd unit templating for this, but I think this doesn't make sense on NixOS? The path forward would probably to create systemd units by ourself appropriately.

Maybe the variant that is used in php-fpm would work?

Awesome, thank you for the update. I really appreciate the nixos implementation of mastodon as it ships all performance related best practices out of the box.
Probably this should not be part of this change, but regarding the new search changes a rebuild of the Elasticsearch indices are necessary. We do have the use case for automatic upgrades for database migrations, would it make sense to have in the long term a similar implementation for Elasticsearch indices upgrades?
Usually it is done by running tootctl search deploy https://docs.joinmastodon.org/admin/tootctl/#search-deploy

This all seems approved two weeks ago, anything left to do here to merge?

@georgyo Yes:

One remaining issue is the streaming API. We have to reflect the change in mastodon/mastodon#24655, meaning that we have to remove STREAMING_CLUSTER_NUM and take care of creating systemd units per streaming instance. Upstream uses systemd unit templating for this, but I think this doesn't make sense on NixOS? The path forward would probably to create systemd units by ourself appropriately.

Mastodon 4.2.1 is out

In an effort to hopefully move this forward, I've looked through nixpkgs and tried finding occurrences of both proposed solutions.

Upstream uses systemd unit templating for this, but I think this doesn't make sense on NixOS?

Searching for @". returns a few instances of unit templating being used, with the only (non-systemd) related module being kresd.

The path forward would probably to create systemd units by ourself appropriately.

services.redis.servers does it that way.
I'm not qualified to say which solution would be better for the mastodon module.

This is expected to work if you only need one streaming instance with one thread. People with bigger instances would run into problems if I understood it right. But maybe this isn't how the Nixpkgs module is used so far anyway?

Hey, do you think this will make it to 23.11 ? Thanks !

@rgrunbla I think so, but can't promise anything. Really hard to find time for anything rn...

I have a WIP branch for updating mastodon to 4.2.1 here https://github.com/teutat3s/nixpkgs/tree/mastodon-4.2.1.
Currently, it only contains the updated package and a fix to the update script, I'll take a look at the module next.

I finally managed to pushed an update to 4.2.1 and my solution for the mastodon-streaming problem.
This will break setups, that use a remote nginx instance and will require changes to all setups, that have services.mastodon.configureNginx = false. My goal was to warn people using these setups as best as possible through the release notes and by removing the services.mastodon.streamingPort option. But I'm not willing to put in more time to fix the situation.
I seriously believe that the Mastodon module is suffering from feature creep and that we support too many use cases.
Thanks for the update script improvement, @teutat3s.

Would appreciate if the commits were cleaned up according to the CONTRIBUTING guide, we do a final review and we go for the merge.

@RaitoBezarius I tried to clean up, is this right?

Perfect!

I will merge this in the time being, don't let this prevent @SuperSandro2000 comments be taken care of in a further PR, as we are operating in a tight timeline for release management purpose, I will proceed with release needs for now.

The release note is unclear as to how the config needs to actually be adjusted; I get the following error:
error: The option `services.mastodon.streamingProcesses' is used but not defined.
(use '--show-trace' to show detailed location information)

when evaluating my mastodon host against 23.11. Is that maybe just because it should be (but isn't) defaulting to null?


tstzrange values contains double quotes, parsing failes

I was trying out the latest pg-types version based on the latest Github commit, to try out your range-types, but I found that my tstzrange result text from the database is as follows: ["2021-12-31 10:19:24.036+01","2022-01-01 10:19:24.035+01"]  and so the lowerStr and upperStr used here: https://github.com/martianboy/postgres-range/blob/895a57703420104634a1f220359b5e57e1b1a482/index.js#L116
contains double quotes like this:"2021-12-31 10:19:24.036+01" so parsing failes and returns null. I've debugged this on that point and tried to remove the double quotes by: transform(lowerStr.slice(1,-1)) and that worked.

@JesseVelden Thanks for trying this out. This library is pretty much agnostic of the data type of the range, and as you correctly pointed out, relies on the transform function to return the correct type. So I believe this has to do with the way it is used in pg-types. I will investigate later today and let you know.

Actually, after some investigation, I believe this library needs to parse quoted values as well. I will try to update the algorithm to mirror postgres' behavior.

@JesseVelden This should now be fixed here. Going to send a patch to pg-types to use the new updated version. In the meantime, you can give it a try yourself and let me know if you see any problems. Thanks again for reporting this!

PR created here: https://github.com/brianc/node-pg-types/pull/134

Nice! It seems that parsing works with quotes. However, now the -infinity value is not recognized.    I think a simple value.endsWith('infinity') should work for this, as you had earlier.

Nice! It seems that parsing works with quotes. However, now the -infinity value is not recognized.    I think a simple value.endsWith('infinity') should work for this, as you had earlier.

Oh thanks for pointing that out! Will push a fix shortly.

Oh thanks for pointing that out! Will push a fix shortly.

This should be fixed now.

This should be fixed now.


V0.0.9 Roadmap

Copy & Storage

[x] Copy rel pipeline reuse task schedular
[ ] Compression: integer bitpacking

Feature

[ ] Copy to parquet
[ ] Direct scan from css & parquet
[x] Defining rel table over multiple src/dst node table pairs #1888
[x] Transaction statement
[x] Unsigned integer
[ ] Huge integer

Reader

[x] Replace arrow csv reader with our owns.
[ ] Parallel csv reader
[ ] Replace arrow parquet reader with our owns.

Performance

[ ] Projection push down for recursive join

Further notes on release
Doc

[ ] DataTypes
[ ] DDL with rel group
[ ] Transaction statement
[ ] Direct scan
[ ] Copy to parquet

Experiment

[ ] Copy performance on both node table and rel table
[ ] Data size on disk (potential full column scan performance)


chore: remove id from schema templates

Description of changes
Remove id column from graphql schema templates for v2 transformer, since they're not required.
CDK / CloudFormation Parameters Changed
N/A
Issue #, if available
N/A
Description of how you validated changes
Unit + E2E Tests
Checklist

[x] PR description included
[ ] yarn test passes
[ ] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Only api_rest_lambda_migration_v10 failed of the e2e's which is a known issue right now.


Removed settings button from the chat screen

Fixes #316
Changes: Removed settings button from the chat screen
Screenshots for the change:

Before
After

@SIMRAN1 @arundhati24 @batbrain7 Please review


support for Python3

I'll try to move my project from python2 to python3, Is xhtml2pdf - 0.0.6 works with python3?

It does not work with Python 3. Right now the master branch of this repository does not work for Python 3 either, #190.
There have been a number of pull requests for Python 3 support, #177, #205, #222. Thus far none have been merged with the main branch.

We have an active fork at zulumarketing/html2pdf; would you mind opening an issue over there too?
We haven't made any releases yet, but we have made a lot of progress modernizing the codebase (in particular, we've managed to get it working on Py3k), and we would love to hear what broken bits the community would like to help us fix, and what y'all would like to see us fix.
I've opened an issue specifically to discuss where this library needs to change and what the roadmap will look like.

Check the main branch, for one gave support you need to run the library Python 3, the low use django projects and works as it should. agregu again recently an update, because some are not careful with climbing.
Sorry for my bad English.

Please have a look at the 'develop' branch and open up specific issues for all bugs encountered with Python 3.
We are heading away from the 'holistic' python3 support approach and now acting as if we have it, and everything that doesn't work is an issue of its own.
Will prerelease soon as 0.1alpha1.


ipfs-migrator: 1.5.1 -> 1.6.3

Motivation for this change
Bump to match upstream
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build ipfs-migrator

Approved. 👍


Fix vi-mode and support hiding segment when in insert mode

I believe this commit stopped the vi_mode plugin from working (also see this comment from issue #319).
This PR returns one of the parts that was removed in that commit to get vi_mode working again as suggested by the comment linked above.
It also adds a check to see if POWERLEVEL9K_VI_INSERT_MODE_STRING is an empty string and if so, it skips showing the segment entirely.
This works both when using vi mode directly and when temporarily entering vi mode from emacs mode with ^X^V.
This fixes #725 and possibly #319.

Hey @ionsquare - Thanks so much for submitting this PR! As you might have seen in my comment in #319, the reason I never merged #320 (and the reason I pulled the zle commands, to begin with), is that the performance impact of having them was tremendously negative. The VCS segment needs some speeding up in its current state, but those zle commands made it horrendous for non-Vi_mode users.
In testing this branch, I have to say I'm stunned - it actually speeds up P9k. It is obviously a subset of #320, but if this fixes #319 that would be fantastic, because it doesn't seem to slow anything down at all.
I'm testing this on macos right now where I see the speed-up. I'd like to test it on Linux, too, to be sure. It would be great if a few others wouldn't mind pulling this branch to give it a go, as well. Merging things into master with this broad of an impact can be really damaging if we make a mistake, so I want to be sure it's thoroughly tested.
Based on my tests so far, though, this is really excellent, @ionsquare!
@dritter @iScrE4m - Would you mind pulling this branch and giving it a go? I'll test on my Linux laptop in a bit.

I pulled it, then looked into how to test it and realized that since I've never used zle before, I'm probably not the best candidate for testing, sorry!

@ionsquare - I want to get this into the mainline, and at the same time I'm still just a touch nervous of something going wrong if I merge it into master - touching the zle stuff can break things in bizarre ways.
So, I've merged it into next. We are doing a bunch of work on next right now, and I hope to tag a new release in fairly short order. This work will get tested along with the rest of that, and then will be part of the next release.
Thanks so much for contributing this, by the way. I'm still stunned that something so simple seems to have such a positive impact on the problem after so many of us have struggled to make a meaningful fix, here. Great work, and welcome to P9k =)

Thanks for the update, I'm really glad I was able to help. I hope there aren't any unfortunate surprises as it gets tested out in next.


Export cookies without extension ?

Is it possible to what this extension does without using the extension ?

What do you mean?
If you want to do it with just regular JavaScript, it's not possible.  You need access to the browser's extension API.
Other methods could include monitoring communications or reading the browser's DB.

What do you mean? If you want to do it with just regular JavaScript, it's not possible. You need access to the browser's extension API. Other methods could include monitoring communications or reading the browser's DB.

I was hoping there would be a straight forward method but since you mention monitoring the browser's DB and or access the extension API it seems as if that other method I thought exists; doesn't exist, without use of this extension.

Sorry, I forgot.
If you just want to get the value of a specific site cookie, you can check it in the Application tab of Chrome's developer tools.  You can manually copy this and write it to a text file.

Sorry, I forgot. If you just want to get the value of a specific site cookie, the Application tab of browser's developer tools shows it. You can manually copy this and write it to a text file.

I need the value of YouTube watch later as a cookie file in Netscape format. I have opened the Application tab of in this case Edge which is essentially Chrome and gone to the Cookies sub-tab and seen a bunch of cookies with values but don't know which to pick that I'm after ?

There are ten cookies all from the page in this case "Watch Later" on YouTube which I'm unsure if any is specific for this page; or if all of them are for this page using the Application > Cookies in the developer tools ?
Should I copy all the cookies well I consider them names with values 😉and save them as a cookies.txt file; and if so, how do I save them all as a cookies.txt file ?

I tried twice already, what should be in the cookies file; is there anything I should look for related to the Watch Later List for the YouTube account ?
It may be the extension for my browser is not saving this information.

I used the extension in my browser to export youtube cookies (not "Export All Cookies", "Export" for only youtube domains) and confirmed that when loaded in yt-dlp, I can restore my login and browse the list to Watch Later.
There are no functional problems.
If you think there is a problem with the extension working, please reset your browser to see if it reproduces the problem.
Then provide us with a screenshot of the problem, etc. But be careful not to expose the cookies value. If it is just a key, there is almost no problem.
If you simply need the cookies for some software, please ask that community.
If you are doing your own development, please ask on StackOverflow, etc., not in this Issue.

Close this Issue.
If additional issues become apparent and they are directly related to this extension, open a new Issue with the appropriate title.


CI/CD

Configure CI/CD
Automate build tasks on commit

Add automated unit tests
Add build pipeline
Add release pipeline
Access for the project owner (@dennis)

C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net>dotnet list package
Project 'iRacingSDK' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > YamlDotNet           5.3.1       5.3.1

Project 'GenerateDataModels' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > YamlDotNet           5.3.1       5.3.1

Project 'Sample' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > iRacingSDK           <IP_ADDRESS>    <IP_ADDRESS>
   > YamlDotNet           5.3.1       5.3.1

Project 'iRacingSDK.Net.Tests' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > NUnit                2.6.3       2.6.3
   > NUnit.Runners        2.6.3       2.6.3
   > YamlDotNet           5.3.1       5.3.1

Here it seems that YamlDotNet is OK. But
C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net>dotnet build iRacingSDK.csproj
Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\DataFeed.cs(28,7): error CS0246: The type or namespace name 'YamlDotNet' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\iRacingSDK.csproj]

Build FAILED.

C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\DataFeed.cs(28,7): error CS0246: The type or namespace name 'YamlDotNet' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\iRacingSDK.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.44

C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net>dotnet list package
Project 'iRacingSDK' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > YamlDotNet           5.3.1       5.3.1

Project 'GenerateDataModels' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > YamlDotNet           5.3.1       5.3.1

Project 'Sample' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > iRacingSDK           <IP_ADDRESS>    <IP_ADDRESS>
   > YamlDotNet           5.3.1       5.3.1

Project 'iRacingSDK.Net.Tests' has the following package references
   [net472]:
   Top-level Package      Requested   Resolved
   > NUnit                2.6.3       2.6.3
   > NUnit.Runners        2.6.3       2.6.3
   > YamlDotNet           5.3.1       5.3.1

Here it seems that YamlDotNet is OK. But
C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net>dotnet build iRacingSDK.csproj
Microsoft (R) Build Engine version 16.8.3+39993bd9d for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\DataFeed.cs(28,7): error CS0246: The type or namespace name 'YamlDotNet' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\iRacingSDK.csproj]

Build FAILED.

C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\DataFeed.cs(28,7): error CS0246: The type or namespace name 'YamlDotNet' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\dennis\source\repos\dennis\Slipstream\iRacingSDK.Net\iRacingSDK.csproj]
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.44

@dennis ended up doing all the work on this 1.

@dennis ended up doing all the work on this 1.

Just merged the PR to main, so I think this is nailed. Thanks for the help

Just merged the PR to main, so I think this is nailed. Thanks for the help


Bump to 0.7

with tons of goodies ... 🚀 .
docs included

Tests look green on previewnet except for one which is an issue resolved in the hedera SDK post 2.9.1 .


Create new class for hosts

Need instance IP, private IP, associated JOBID, initiated_time, terminated_time

Part of work to support job timeout.


Performance Hub - create a CSR for the custom domains

Create a CSR for the custom domains (domains managed outside of the modernisation platform) in the Performance Hub preprod and prod accounts. One month before certs expire.
DoD

[ ] Sort the certs for performance hub
[x] Document the process going forward
[x] Reviewed by another team member

https://github.com/ministryofjustice/modernisation-platform/pull/1618

Slack thread: https://mojdt.slack.com/archives/C01BUKJSZD4/p1647959251793639

https://github.com/ministryofjustice/modernisation-platform-environments/pull/476


GQL subscription is using stale JWT after device idle (Android)

@MaxSchilling has reported that his graphql client is making a request using a stale JWT after the Android device has been off for some amount of time.
After some research, I suspect that Android Doze suspending timers and network connections. When the app resumes, the websocket notices and begins reconnecting with the old JWT, which happens concurrently with the JWT refresh.
I'm confirming now. If correct, the solution is simple, because the way gql_websocket_link is configured gives us control over socket creation, and that API is async — we can keep it waiting for a JWT refresh.

We had a similar issue with the nhost-js-sdk.
This was our solution there:
https://github.com/nhost/nhost-js-sdk/blob/master/src/Auth.ts#L639-L650

Yes! I saw that while porting, and do have questions about this (since people are now building for Flutter Web.)
But in this case, it's not exactly the same issue.
What I'm seeing is Android suspending all network activity while "dozing" (a state that is entered after a few minutes of the screen being off). In this state, application code continues to run, which includes timer callbacks (possibly at a reduced or less exact rate), but requests never go out, and websocket keep alives never come in.
When everything wakes back up, it's in a bad state, because you have a websocket queued up to send its initial payload (which will contain the current, stale, JWT), and a JWT refresh queued up that won't return before that payload is sent.

It actually also occured on iOS

Ah, well I believe it's even simpler in that case.
iOS standby mode is a lot like Doze from what I've read, but is even stricter. I should be able to repro the issues I've seen there with the same testbed.
Thank you for letting me know.


chore(main): release 0.7.0

:robot: I have created a release beep boop
0.7.0 (2023-02-13)
test: is release changelog copied from this?
Features

mine: better color picker (603ba77)
monitor: background color (4fac4df)
monitor: correct grids interval (d32b1ee)
monitor: line color (ecd133c)
monitor: show dots (7b926ae)
monitor: show grids (bae9322)
monitor: vertical mode: more infos & adaptive y-axis (27fe20c)
new logger (d784765)

Bug Fixes

parentNavigatorKey (4afe6d5)

Performance Improvements

monitor: clip data source (4b75f94)
monitor: reuse titles widget (dc9cdf2)

Code Refactoring

extends to implements (5e4bf27)
home: simplify index (8841373)
monitor: Chart in Monitor (2ff5dfd)
monitor: Duration.zero (51bdf2d)
monitor: make points private (0264fe3)
monitor: move monitor to subfolder (eb23fb6)
monitor: null as default value instead of 0 (75c116e)
monitor: rename to chart (6b68f43)
move router to utils/ (525d3e3)
remove View suffix (95a1d9c)
ShellRoute (fbabb23)

Build System

flutter pub add logging (338898f)
flutter pub remove logger_flutter_plus (9f946cf)
flutter pub upgrade (0ea942d)
monitor: flutter pub add flex_color_picker (03f0b87)
rerun build_runner (3beabb7)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/CCXXXI/ecg_monitor/releases/tag/v0.7.0 :sunflower:


Website build process minor readme updates

Should be blocked by 89b8d1a (#1330) until it is merged so that any other issues that we run into can be resolved and made a part of the build process.

Updates build process with minifiy enabled
Updates sizzle reel link at the request of @doug-walker

Signed-off-by: Henry Wilkinson<EMAIL_ADDRESS>

As @michdolan approved the changes, @Shrinks99 you can now make it a pull request (instead of a draft), so we can merge it next week.

I could do that if you want to get it approved and in but my intention with this PR was to not have it merged until the website is actually updated to resolve any errors in the build process (as I've already found one).  Hopefully no more will come about before 89b8d1a (#1330) is approved but if they do I planned to include them in here and that's why it's still a draft.
Happy to defer to what you think is best if you want to push this through though @hodoulp.

I think you have a good plan @Shrinks99 , we will merge 1330 first.

PR1330 is already merged. I'm waiting a success build to merge this one.


There seems to be an issue with executing orders after they have been successfully executed twice before.

Hi,
After executing two consecutive trades using BUY and SELL Market types the next ones cannot be executed the log says it were executed but they aren't.
For example
i open a Buy order and then i try to close it using the method close_all() everything works fine. (I use this method because the close position by id doesn't work at all).
After that first successful execution if i try to open another one (in the same session) the new buy order executes correctly but if i try to use again the close_all method the buy order still persists in the market.
Another scenery is:
I can open many buy market orders but i cannot close them (using the close all method).
my implementations:
Buy ORDER
  if not self.api.isconnected():
            raise CTraderDisconnected("CTrader is not connected")
        try:
            logger.info(f"🕦 Buying ${order.quantity} from {order.symbol}")

            price = self.api.quote()
            logger.info(f"Quote: {price=}")
            price = price[order.symbol]["bid"]

            symbol = order.symbol
            volume = order.quantity
            stop_loss = 0
            take_profit = 0

            oid = self.api.buy(symbol=symbol, volume=volume, stoploss=stop_loss, takeprofit=take_profit)
            logger.info(f"CTrader Position {oid}")

Close all:
  positions = self.api.positions()
            if len(positions) < 1:
                break

            logger.info(positions)
            self.api.close_all()
            time.sleep(5)

Sometimes, the second try produces an unexpected infinite loop with a number of 16 digits.
I have some thoughts on what might be going on, but I need to test and debug those ideas when the market opens with a demo account.
Cheers

First and foremost, my friend, I appreciate your input on the subject of consecutive order placements. I've run into some trouble with Jupyter Notebook and the fix api, however, I plan to run some tests based on your insights. Please know that any PRs are highly encouraged. I apologize for my late response, I've been heavily involved in an AI project aimed at the financial market recently. I intend to perform the tests this week and aim to resolve some bugs. I've observed an issue with the FIX API concerning pauses between successive executions - this hasn't always been the case. I've also noted disparities across different brokers, particularly between demo and real accounts.

Hi, After executing two consecutive trades using BUY and SELL Market types the next ones cannot be executed the log says it were executed but they aren't.
For example i open a Buy order and then i try to close it using the method close_all() everything works fine. (I use this method because the close position by id doesn't work at all).
After that first successful execution if i try to open another one (in the same session) the new buy order executes correctly but if i try to use again the close_all method the buy order still persists in the market.
Another scenery is: I can open many buy market orders but i cannot close them (using the close all method).
my implementations:
Buy ORDER
  if not self.api.isconnected():
            raise CTraderDisconnected("CTrader is not connected")
        try:
            logger.info(f"🕦 Buying ${order.quantity} from {order.symbol}")

            price = self.api.quote()
            logger.info(f"Quote: {price=}")
            price = price[order.symbol]["bid"]

            symbol = order.symbol
            volume = order.quantity
            stop_loss = 0
            take_profit = 0

            oid = self.api.buy(symbol=symbol, volume=volume, stoploss=stop_loss, takeprofit=take_profit)
            logger.info(f"CTrader Position {oid}")

Close all:
  positions = self.api.positions()
            if len(positions) < 1:
                break

            logger.info(positions)
            self.api.close_all()
            time.sleep(5)

Sometimes, the second try produces an unexpected infinite loop with a number of 16 digits.
I have some thoughts on what might be going on, but I need to test and debug those ideas when the market opens with a demo account.
Cheers

First and foremost, my friend, I appreciate your input on the subject of consecutive order placements. I've run into some trouble with Jupyter Notebook and the fix api, however, I plan to run some tests based on your insights. Please know that any PRs are highly encouraged. I apologize for my late response, I've been heavily involved in an AI project aimed at the financial market recently. I intend to perform the tests this week and aim to resolve some bugs. I've observed an issue with the FIX API concerning pauses between successive executions - this hasn't always been the case. I've also noted disparities across different brokers, particularly between demo and real accounts.

First and foremost, my friend, I appreciate your input on the subject of consecutive order placements. I've run into some trouble with Jupyter Notebook and the fix api, however, I plan to run some tests based on your insights. Please know that any PRs are highly encouraged. I apologize for my late response, I've been heavily involved in an AI project aimed at the financial market recently. I intend to perform the tests this week and aim to resolve some bugs. I've observed an issue with the FIX API concerning pauses between successive executions - this hasn't always been the case. I've also noted disparities across different brokers, particularly between demo and real accounts.

Hi,
I'm working on my spare time, and currently, I haven't had any success in trying to fix the problems. I am currently trying to understand how the positions are handled in the position list attribute, and it's good to know that PRs are welcome. Once I fix the positions problem, I'll be creating one.
I'd also like to mention that I have noticed the differences related to demo and real accounts.
btw, Congratulations on your AI project, and I wish you the best!

I have found the problem.
When tag 35="AP" is received from the Broker, the parse_trade_message method searches in the binary data for the end of the FIX message, which in all cases is the checksum tag (tag 10)
match = re.search(rb"10=\d{3}\x01", self.tstream.peek(self.tstream.count()))
However, the FIX message received contains various messages grouped into just one response, as shown in the following example:
b'8=FIX.4.4\x019=162\x0135=AP\x0134=2\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349730793\x01727=2\x01728=0\x01730=15347.9\x01702=1\x01704=1\x01705=0\x0110=218\x018=FIX.4.4\x019=162\x0135=AP\x0134=3\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349731225\x01727=2\x01728=0\x01730=15349.8\x01702=1\x01704=1\x01705=0\x0110=211\x018=FIX.4.4\x019=137\x0135=j\x0134=4\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0158=ORDER_NOT_FOUND:no orders found\x01379=1\x01380=0\x0110=078\x01'
If we carefully look into the received response, we can split it into 3 FIX messages:
b'8=FIX.4.4\x019=162\x0135=AP\x0134=2\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349730793\x01727=2\x01728=0\x01730=15347.9\x01702=1\x01704=1\x01705=0\x0110=218
8=FIX.4.4\x019=162\x0135=AP\x0134=3\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349731225\x01727=2\x01728=0\x01730=15349.8\x01702=1\x01704=1\x01705=0\x0110=211
18=FIX.4.4\x019=137\x0135=j\x0134=4\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0158=ORDER_NOT_FOUND:no orders found\x01379=1\x01380=0\x0110=078\x01'
Unfortunately, the regex is matching just the first one, resulting in parsing only the first message and causing the position list to contain only ONE position. This is why we can't close the other orders. Furthermore, related to this problem, the position list callback prevents the right execution and filling of the position list. (This is why subsequent orders cannot be closed after closing the first one).
I have completed half of the fix, but I think I will need to refactor the callback for positions.

I have found the problem.
When tag 35="AP" is received from the Broker, the parse_trade_message method searches in the binary data for the end of the FIX message, which in all cases is the checksum tag (tag 10)
match = re.search(rb"10=\d{3}\x01", self.tstream.peek(self.tstream.count()))
However, the FIX message received contains various messages grouped into just one response, as shown in the following example:
b'8=FIX.4.4\x019=162\x0135=AP\x0134=2\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349730793\x01727=2\x01728=0\x01730=15347.9\x01702=1\x01704=1\x01705=0\x0110=218\x018=FIX.4.4\x019=162\x0135=AP\x0134=3\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349731225\x01727=2\x01728=0\x01730=15349.8\x01702=1\x01704=1\x01705=0\x0110=211\x018=FIX.4.4\x019=137\x0135=j\x0134=4\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0158=ORDER_NOT_FOUND:no orders found\x01379=1\x01380=0\x0110=078\x01'
If we carefully look into the received response, we can split it into 3 FIX messages:
b'8=FIX.4.4\x019=162\x0135=AP\x0134=2\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349730793\x01727=2\x01728=0\x01730=15347.9\x01702=1\x01704=1\x01705=0\x0110=218
8=FIX.4.4\x019=162\x0135=AP\x0134=3\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0155=10014\x01710=1\x01721=349731225\x01727=2\x01728=0\x01730=15349.8\x01702=1\x01704=1\x01705=0\x0110=211
18=FIX.4.4\x019=137\x0135=j\x0134=4\x0149=CSERVER\x0150=TRADE\x0152=20230804-19:55:06.286\x0156=demo.icmarkets.0000000\x0157=TRADE\x0158=ORDER_NOT_FOUND:no orders found\x01379=1\x01380=0\x0110=078\x01'
Unfortunately, the regex is matching just the first one, resulting in parsing only the first message and causing the position list to contain only ONE position. This is why we can't close the other orders. Furthermore, related to this problem, the position list callback prevents the right execution and filling of the position list. (This is why subsequent orders cannot be closed after closing the first one).
I have completed half of the fix, but I think I will need to refactor the callback for positions.
Good evening, my friend. I apologize for the delay in responding. Lately, I've been extremely busy and haven't had the time to check. I'm hopeful that next week will be less hectic, and I'll definitely review this matter. I'll revisit the document to see if there have been any updates or if it's an initial project bug. Thank you for your cooperation. I intend to return promptly to focus on the projects at EJTrader.

Nice, work. How about an implementation of the same in rust, for latency's sake?


fix(constructs-main-pipeline): Failing in Codepipeline at Build-v2 stage

Issue #, if available: 438
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v2
Commit ID: 85ca14eb4fbbfa85d622d9e991b004ec4b9f0d30
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: githubautobuild-for-cdk-v1
Commit ID: 85ca14eb4fbbfa85d622d9e991b004ec4b9f0d30
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


BUG: inconsistency in ability to add / remove records

Hi,
In 3.x, I experienced the following.
ObjectA: I canWrite and I canEdit
ObjectB: I canView only
A has a manyMany relationship with B.
When I am editing A, I can add B to A, but I can not remove it from A. Here you can see this in action:

I can add a relationship, but I can not unlink a relationship.  This is inconsistent AFAIK.
Of course there are the other oddities in GridFields in relation to canEdit and CanView so this may be addressed at the same time.

I'm not sure if we've clarified our semantics here, but a many-many relationship should probably be editable if you have canEdit rights on either side of the relationship.

Still a problem in SS4.


Storage file still defaults to addressbook.xml

Fix storage component and save to cmdo.xml
Open to all.

Resolved.
Issue: Change config.json value. This file is, however, not committed to Git, and I am guessing that it is created locally at firstrun. The more important issue is changing the save-file-location.


Bham: Calculate the proportion of people who are serviced by public transport

Create a function that can be re-used for the whole population.

Done.


Unauthorized to perform this action

Laravel: 7.26.0
Nova: 3.8.4
If I try to use an action on a resource that doesn't have any entries. I get an error "Sorry!
Knowing that If I upgraded nova to 3.10.0 this will be fixed because nova introduced standalone actions in that version.
Which if I did I won't be needing this package but I can't upgrade my nova version.
So I consider this as a bug.
Please help thank you :)

That's because you're using older nova. This package actually  requires nova 3.10.0 to work, not 3.0. If you can't upgrade, I will share workaround with you

Please share it with me if possible

You can do It by implementing own handleRequest to override nova's default (as standalone actions are implemented from the version 3.10+)
This is mine
    /**
     * Execute the action for the given request.
     *
     * @param  \Laravel\Nova\Http\Requests\ActionRequest  $request
     * @return mixed
     * @throws MissingActionHandlerException
     */
    public function handleRequest(ActionRequest $request)
    {
        $method = ActionMethod::determine($this, $request->targetModel());

        if (! method_exists($this, $method)) {
            throw MissingActionHandlerException::make($this, $method);
        }

        $wasExecuted = false;

        $fields = $request->resolveFields();

        if (! $this->standalone) {
            $results = $request->chunks(
                static::$chunkCount, function ($models) use ($fields, $request, $method, &$wasExecuted) {
                    $models = $models->filterForExecution($request);

                    if (count($models) > 0) {
                        $wasExecuted = true;

                        return Brightspot\Nova\Tools\DetachedActions\DispatchAction::forModels(
                            $request, $this, $method, $models, $fields
                        );
                    }
                }
            );
        }
        else {
            $wasExecuted = true;
            $results = Brightspot\Nova\Tools\DetachedActions\DispatchAction::forModels(
                $request, $this, $method, collect([]), $fields
            );
        }

        if (! $wasExecuted) {
            return static::danger(__('Sorry! You are not authorized to perform this action.'));
        }

        return $this->handleResult($fields, $results);
    }

Note: You have to use DispatchAction from this package as it has already overridden method for this purpose (yes by default there are like 2-3 checks for this thing same in nova for some reason). Or you can always make your own.
And then you will probably want to specify action to be runnable without models
public function withModels(): self
    {
        $this->standalone = false;
        return $this;
    }

The implementation uses standalone property that is already present. And then in resource just use withModels() and you should be good to go. Let me know if it's working.

Thank you for your detailed solution. But unfortunately It didn't work. I'm using the action to download file, It shows that the action ran successfully but the file doesn't get downloaded. When I add withModels() to the action the file gets downloaded but we're back to square one.

Maybe you could try use xdebug to see where it's getting stuck. I don't have time right now to try and replicate your issue.

I figured it out. I had to add the dispatchaction to an array for the results in case of standalone
 $results =[
                \Brightspot\Nova\Tools\DetachedActions\DispatchAction::forModels(
                    $request, $this, $method, collect([]), $fields
                )
            ];

Thank you so much for your help


Works really slow if data length > 54 chars on low-end devices

@Overtorment I see the same issue. I have not looked at the code yet but it appears that a promise is not being used at a point where it perhaps should be. The call to create the QRCode is synchronous, perhaps breaking it up will help. @nating PLEASE PLEASE could you help with this?
I am using version 2.0.0 and the content I use looks like this:
ndap34mk6yzyiru49ivfitgzybkfqxnejcr9qvtnd3ychb20

@kristoferpelchat  I think we migrated to smth nicer and faster, check deps here https://github.com/BlueWallet/BlueWallet/

@kristoferpelchat I think we migrated to smth nicer and faster, check deps here https://github.com/BlueWallet/BlueWallet/

FANTASTIC! I upgraded and it is working. thanks @Overtorment. It just so happens we are creating a wallet as well that will eventually be public on Github (https://ndau.io). :)

@kristoferpelchat what is smth? I'm working through this issue since it's so slow on android, though it worked for awhile. Thanks!

@kristoferpelchat what is smth? I'm working through this issue since it's so slow on android, though it worked for awhile. Thanks!

react-native-qrcode-svg is where we landed.


Fix and optimize LazyMap

Motivation:
LazyMap was taken from Boon.

There is some code that's not used in the scope of Jodd.
containsKey and containsValue don't need to load the HashMap when there are just a few entries

Modification:
Contribute changes that have been used in Gatling for some time.
Result:
More efficient LazyMap implementation.

@igr With #687 and this one, I'm done for now.

Expect the release today :) Just to review, merge and solve another request, and its good to go!

Thanks a lot!

LGTM
Nice, nice!!!


prevent slide CTA from disappearing on scroll

Closes #112
Scroll event added to .Cards is triggered on scroll of the children (.Block) causing calculation to be done against Block offset instead of Cards returning unexpected values.

Prevent scrolling calculations from being triggered on none .Cards elements
Update slide CTA initial state to false since the CTA's would only appear after user setup
Prevent last Block being cutoff when scrolling is available by removing the scroll-padding-left property
Add aria labels to previous and next cta's

Looks good, well done can you remove the unused class scrollButtonNext?

The class has been removed.


rm unused keystore files

some files are left unused, in #6853. this pr is to remove them

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks


Add py-EVM to list of implementations

What was wrong
Py-EVM was not listed under the list of implementations.
How was it fixed.
Added it.  If it was intentionally not included because it is still under development, please feel free to close this issue.
Cute animal picture

Thank you!  Forgive my ignorance.

No forgiveness necessary.  This is what pull requests are for.  Turns out the space moves fast and it's easy to miss things.


update the errors to process the arrays

I did not take into account that the errors were arrays.
Changes to process errors as an array.

Coverage remained the same at 94.07% when pulling ee3d905db02bf4917fc2ae5341ea668930ff1c5b on DEC-349 into c73a0de5283ea6b161797fbbfe6083cf29b44ba7 on phase2.

Coverage remained the same at 94.07% when pulling 9c4748c0cd22b737ddce80c8bf3b5787ee541639 on DEC-349 into c73a0de5283ea6b161797fbbfe6083cf29b44ba7 on phase2.

:+1:


Admin Consent version?

Does anyone know what a modified version of this would look like that would do the Admin consent prompt from Azure for Restricted Scopes?  That would be incredibly valuable in this sample.

If we are developing an single-tenant and register the app from the Azure portal or Azure classic portal, there is no need to use the admin consent. When we register the app, the admin consent already be granted.
And if you want to use the admin consent in any web app supports Katana, we can add this parameter using the code below:
Notifications = new OpenIdConnectAuthenticationNotifications()
{
          RedirectToIdentityProvider= context => {
                     context.ProtocolMessage.Prompt = "admin_consent";
                      return Task.FromResult(0);
          }
}


[core/ DO NOT MERGE] Attempts to fix multi-adapter inference through PeftModel interface

What does this PR do?
Attempts to fix https://github.com/huggingface/peft/issues/967
As discussed offline, not sure if this is the right approach as it breaks many core-logics such as active_peft_adapter
cc @BenjaminBossan @pacman100

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

We shouldn't forget about this PR, maybe we can brainstorm during the SF visit. I also took a stab at this in a different context (also not complete): https://github.com/alexrs/peft/pull/1/files


feat: Allow for traces in a passing fuzz test

Component
Forge
Describe the feature you would like
If a fuzz test passes and verbosity >= 4, run the last calldata again and record a trace and print like we do for concrete tests
Additional context
No response

As a spot check that it’s doing what you think it’s doing is my thought. also see events and check that with the random numbers they are what you expected as well


Support simulation api

Latest - GET
/latest
Returns last request value (stored as int)
Register - POST
/register
Posts a user
Error -> 400
Success -> 204
Messages - GET
/msgs
Returns all messages from all users
Messages from user - GET/POST
/msgs/
Get: returns all messages by user
Post: inserts message by user and returns 204
Follows user - GET/POST
/fllws/
POST && follow:
 is the user that wants to follow someone else
request.json["follow"] contains username of the one you wants to follow

no user -> 404
else -> insert into follower and return 204

POST && unfollow

no user -> 404
else -> Delete from follower and return 204

Get:

gets all users the username follows
{no} is an argument on the request to specify limit

@Turboen, what is missing on this task?


#78 [HxSidebar] Expand section if current location matches

I have created a very first prototype.
Current findings (work-in-progress):

Although I comment-out calling StateHasChanged() from OnAfterRender, the HxSidebarItem still re-renders (3x render!!!) and correct output gets rendered.
The server-prerendered output reflects the expansion, which means at least 2x rendering has had to occur on server-side.
We need more granular setting. E.g. for our documentation, the HxBadge component is present three times in the Sidebar (Buttons&Indicators, Layout&Typography, All components), which means all three sections get expanded.

cc @crdo; @jirikanda

@crdo Give it a try, if you have a minute. I will adjust the doc sidebar + merge later afternoon and create a new release.


support quantizationBits above 16 for draco decode

fix quantizationBits above 16 draco decode went wrong in  #10977

Thanks for the pull request @jiangheng90!

:heavy_check_mark: Signed CLA found.
:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.

Thanks @jiangheng90! I just want to point out one possible side effect which is that uint32 values will lose some precision when stored in a Float32Array since some integers above 2^24 can't be represented exactly in 32-bit floating point, but since the compression is lossy already it's not a big concern. There isn't really a good alternative since vertexAttribPointer doesn't support uint32 values.
I was also concerned that the code would have some assumption that quantized values need to be stored in an integer typed array, but after stepping through the code that doesn't seem to be the case, which is good. Maybe the old Model code had this assumption.
Fixes https://github.com/CesiumGS/cesium/issues/7471. I confirmed that the original model in the issue is working now:


mpvScripts.mpv-cheatsheet: init at <IP_ADDRESS>

Description of changes
I tested it on a local overlay, it works fine.
Homepage: https://github.com/ento/mpv-cheatsheet/
Things done

Built on platform(s)

[X] 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

[X] 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
[X] 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 274831 run on x86_64-linux 1

1 package built:

mpvScripts.mpv-cheatsheet

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/1324

Added some reviewers which I found in the history of the scripts/ directory.


Terraform pagerduty support

Related Issue or Background Info

CDCGov/prime-devops#2 requires us to have a pagerduty integration exposed to our existing alerts systems

Changes Proposed

update the metrics alerts to take multiple action IDs instead of just one (so we can send events to multiple receivers)
update the global package to set up terraform-managed pagerduty integrations to Production and Demo services

To verify:

terraform best practices
is this how we want to use our existing Pagerduty services? Should we add new ones instead? Should we import the existing integrations so we don't have multiple integration webhooks for Azure?
do we want to add any customization to the data as it flows through these webhooks?

Additional Information
A follow-up PR will make use of these changes in the seven (7) deployed API environments.
Screenshots / Demos
Checklist for Author and Reviewer
UI

N/A Any changes to the UI/UX have been approved by design
N/A Any new or edited error messages have been approved by design

Testing

[x] Includes a summary of what a code reviewer should verify

Changes are Backwards Compatible

N/A Database changes are submitted as a separate PR
N/A GraphQL schema changes are backward compatible with older version of the front-end

Security

N/A Changes with security implications have been approved by a security engineer (changes to  authentication, encryption, handling of PII, etc.)
[x] Any dependencies introduced have been vetted and discussed

Cloud

LOL DevOps team has been notified if PR requires ops support

This won't pass on its own—need to merge #1503 so that the consumers of the service are updated to match the changed alerting structure.

Larger question for the group: what environments are we required to have up when? I.e. what's our SLA? Our paged alerts should reflect this. Can we implement everything in this PR as written but add a toggle for the actual Slack alerts until we have this conversation? I don't want to hold up the actual work.

Larger question for the group: what environments are we required to have up when? I.e. what's our SLA? Our paged alerts should reflect this. Can we implement everything in this PR as written but add a toggle for the actual Slack alerts until we have this conversation? I don't want to hold up the actual work.

When I talked with @timbest-usds, I noted the following environments as external and considered production:

Prod
Demo
Training

All other environments were considered non-prod. Does that sound right @timbest-usds?

Production environments:

Prod: Expected availability 24/7, fix issue immediately
Training: Expected availability Monday to Friday 9-5pm ET, Fix the issue before working hours. if there is an alert on Friday at 11pm it is acceptable to fix that during the day on Saturday or Sunday
Demo: Expected availability Monday to Friday 9-5pm ET (when sparkle has a demo)

Non production environments (Pentest, Test, Stg, dev) should only be dealt with during business hours

I was actually wondering about training and demo, and put them in the non-prod bin (I actually put stg in the prod bin on the grounds that stg is how we test production infrastructure before releasing it). I think based on Tim's last comment we need three services, not two (or we need some fancy event rules on the pagerduty side, which seems like strictly unnecessary levels of extra work).

I was actually wondering about training and demo, and put them in the non-prod bin (I actually put stg in the prod bin on the grounds that stg is how we test production infrastructure before releasing it). I think based on Tim's last comment we need three services, not two (or we need some fancy event rules on the pagerduty side, which seems like strictly unnecessary levels of extra work).

What about just sending every environment to PagerDuty and just muting the non-prod ones there? That way we don't need to implement environment checks for this.

I was actually wondering about training and demo, and put them in the non-prod bin (I actually put stg in the prod bin on the grounds that stg is how we test production infrastructure before releasing it). I think based on Tim's last comment we need three services, not two (or we need some fancy event rules on the pagerduty side, which seems like strictly unnecessary levels of extra work).

What about just sending every environment to PagerDuty and just muting the non-prod ones there? That way we don't need to implement environment checks for this.

That was my original thinking on why there is a PagerDuty service per environment instead of prod/non-prod. Gives more flexibility on choosing hours of alerting / alerting channels.


bug fix for sagemakerendpoint streaming

I've discovered a bug in the code for the recent sagemaker endpoint streaming.
Fixed it based on AWS code found here (https://aws.amazon.com/blogs/machine-learning/elevating-the-generative-ai-experience-introducing-streaming-support-in-amazon-sagemaker-hosting/)
Thank you

Here is a demo video of running the new code, streaming from AWS Sagemaker Endpoint.
[https://www.youtube.com/watch?v=bD2Rrbw0fF0]

cc @3coins

modified lines 52, & 55 for return type annotations. opened up #11999 (https://github.com/langchain-ai/langchain/pull/11999)


Add AWS SSM Parameter Store support

In #385, I added a code change to natively support retrieving configuration from the AWS Systems Manager Parameter Store. However, that was somewhat premature as support for such a feature had not yet been agreed upon.
This issue is to track support for that feature.
Background
From the product page:

AWS Systems Manager provides a centralized store to manage your configuration data, whether plain-text data such as database strings or secrets such as passwords. This allows you to separate your secrets and configuration data from your code. Parameters can be tagged and organized into hierarchies, helping you manage parameters more easily. For example, you can use the same parameter name, "db-string", with a different hierarchical path, "dev/db-string” or “prod/db-string", to store different values. Systems Manager is integrated with AWS Key Management Service (KMS), allowing you to automatically encrypt the data you store. You can also control user and resource access to parameters using AWS Identity and Access Management (IAM). Parameters can be referenced through other AWS services, such as Amazon ECS, AWS Lambda, and AWS CloudFormation.

It is similar to AWS Secrets Manager, with a few differences:

support for non-secret data (i.e. can make public parameters)
free storage & retrieval of parameters (for standard parameters)
makes greater use of a hierarchy of parameters which fits in well with nested parameters within Pydantic Settings (e.g. /app/prod/db/username and /app/prod/db/password could mape well to db: DbSettings)

Fit within Pydantic Settings
Given that we currently support Azure Key Vault settings source (https://github.com/pydantic/pydantic-settings/pull/272) and have green-lighted support for AWS Secrets Manager (https://github.com/pydantic/pydantic-settings/issues/175#issuecomment-1750167497), I think rounding out support with AWS SSM Parameter Store seems like a reasonable addition.
Will people use it?
I maintain a project to support for AWS SSM Parameter Store for Pydantic v1 (github, pypi).  At time of writing, it has 19 stars on Github and PyPi stats reports the usage as such:

Downloads last day: 56
Downloads last week: 178
Downloads last month: 653

Not tremendously popular, but it is used by projects in the wild.

seems @ceb10n has also worked on an extension for this recently, supporting pydantic>=2.0.1: pydantic-settings-aws
blog post (with some use cases)
docs
github
pypi
pydantic-settings-aws shows similar stats to @alukach's project:

Downloads last day: 44
Downloads last week: 496
Downloads last month: 1,168

Parameter Store and Secrets Manager are great, and we use then a lot at work. For projects that use AWS, they are a great fit.
But although I developed the pydantic-settings-aws sometime ago, i don't see the necessity to add an optional dependecy of boto3 in the pydantic-settings project.
If someday people start using these features a lot, maybe it will make more sense to add it, but before that, I agree that it would bring some unnecessary complexity to the code base.
But if the project decide to add it the future, I'll be glad to help ;)


Test builds from a repo branch awkward

Currently if a developer wants to test a change pushed to a branch of one of the 4 repos
used by the build that branch must be available on all 4 repos even if changes being
tested are only made to one.
The fix should optionally allow a different branch name, referred to as a reference in the build scripts, to be specified for each of the repo URL used by the build scrips.

@miq-bot assign @jvlcek

fix merged


Preview frozen but capture functioning.

Using a modified version of the view controller from the example project, when I transition to another view controller the preview freezes. Upon return to the view controller with the preview, the preview stays frozen. Capture happens as normal however.  I can't seem to get it unfrozen with an combination of startingPreview, removing/readding previewView, end/restartCapture. Am I missing something?

hey @benlachman it could be bug where the preview layer isn't reconfigured properly or the connection isn't enabled. maybe check the previewLayer reference and unfreezePreview.

I think this was an issue with the preview being disabled. I'll close this issue. Thanks!

:+1:


Failure to check for correct CUDA version when installing

We are working out of an environment that currently has CUDA 6.5, which is not compatible with the current version of this library. It would be really appreciated if in the future if luaocks would fail before unsuccessfully completing the install, if the lowest usable version of CUDA is not present. We automatically update our Rocks for our torch7 environment, and not having a graceful failure breaks things.
Thanks.

Thank you both!


[$injector:nomod] Module 'permission' is not available!

my error

my app.js

my index.html

please help me. sorry my bad english

the newest angular-permisson 3.2.1
angularjs 1.5.3
ui.router 1.5.3

thank you, i will try other version.

My set up:

AngularJS v1.5.5
ui.router - v0.2.17
angular-permission - v3.2.1
angular-permission-ui - v3.2.1

And I haven't noticed any troubles.
I guess, problem is in an order you include your scripts. angular-permission.js should go first:
<script src="bower_components/angular-permission.js"></script>
<script src="bower_components/angular-permission-ui.js"></script>

Also, @sonnh58, why do you include both angular-permission-ui.js and angular-permission-ng.js?

@goliney  Thank you so much, it works.  Im new :(


Add method to estimate caching key

Related to #313 #292
The cache key is a unique identifier for the component that will be used to decide whether a component should be executed or not.
This is now estimated at compile time since it's easier to estimate the docker image digest outside of the component and pipelines (requires docker to be installed and authenticated). Only caveat there is that the image digest might change between the time the pipeline is compiled and the time it's run (e.g. image changes to a component is made after starting the run under a similar tag). However, I don't a straightforward  way to extract the image digest from within the component itself:

Connecting to the docker API with curl -> requires passing an authentication key
Passing the digest as part of an environmental variable during the build process -> requires modification to the Docker image

In the local runner we often build custom components on the fly. How will we handle this ?

In the local runner we often build custom components on the fly. How will we handle this ?

Missed that one, it's a bit tricky because of two reasons:

The digest is actually different from registry to registry, images built locally and remotely will have different digests https://blog.aquasec.com/docker-image-tags. This means that if you want to resume a pipeline that was run remotely on the local runner (e.g. by specifying the base path to be remote), caching will not work.
Even if we were to have the same digest, we're estimating the digest before running which is when the build happens with docker-compose up

Given those constrains and the fact that it's probably more efficient to estimate the digest during runtime based on the reasons mentioned in the description, I think an ideal solution would be to have a unique digest that can be retrieved during runtime. Either by

Including it as an env variable during build time (downside is that we have to change the structure of the Dockerfile to add an environment)

Estimating it internally within the component (might require installing additional packages)

There is still the issue of having a unique digest, do you have any ideas on how to best approach this?

I think overall the code looks fine. I'm just not a big fan of how we have to compare the docker images but I have no better proposition.

Thanks @PhilippeMoussalli!
I see a couple of issues with this:

This adds docker as a local dependency
This requires local authentication to the registry, which might not be available
The image digest might change after compilation

I'm wondering if we shouldn't simplify this further and calculate the hash key based on the image name and tag.
This has the downside that the underlying image might change, but that shouldn't really happen anyway. And as long as we provide a flag to disable the caching, the user can always work around it. We could even automatically disable it for tags that are known to change like 'latest'.
This downside is also already partially present in the current approach (see the image digest might change after compilation above).
But instead, we lose all the other disadvantages.


Page up / Page down doesn't scroll the CodeField

https://github.com/flutter/flutter/issues/121867