Feature: High contrast documentation

Is your feature request related to a problem? Please describe.
faststream home page and documentation is hard to read for vision imparied.
Describe the solution you'd like
Make the home page and docs more easy to read for vision impaired, like the FastAPI docs. Perhaps a button to switch to high contrast doc is desirable for some people.
Describe alternatives you've considered
I think a simple solution like having high contrast background + text is good enough.

Hello @chanpl,
Sorry for your bad experience with faststream homepage. We will work on providing a better reading experience in the homepage.
We do provide darkmode and lightmode in faststream docs similar to fastapi docs

Below are the darkmode and lightmode from fastapi docs

Are you okay with our darkmode and lightmode implementation? Or do you like to have somethine else? Please let us know @chanpl

@kumaranvpl Thank you very much for your positive response. The dark mode looks good to me :-) While the home page can be improved, but it's not a high priority.

I think we can close the Issue due it doesn't related to FastStream itself, but landing styling

@Lancetnik Yep, we are not going to add dark/light styling for landing page anytime soon. The actual docs has dark/light theming for accessibility purposes. I think that is enough for now.


Add license

Can you please add a LICENSE? Without it's not clear if we're permitted to use your work.
Thanks for sharing this component!

@siboulet definitely permitted, just added the license on master, thanks for pointing this out!


Issue 331 migrate json language catalogs to po

@artlowel @paulo-graca
Normally the build should now work and the tests should pass. I also made another rebase and made sure that both dspace.pot (the template file), as well as en.po (the English translations) are up to date with the latest keys in en.json.
To help with the transition, I made sure that:

the original key name/path from en.json is available in .po and .pot comments
the ORDER of the keys corresponds with the order in en.json to the extent possible.

Can we identify any remaining blockers for stopping adding new keys to en.json? Would really love to see if we can finalize the transition, so we can start on documentation and onboarding of translators and developers with the new way of working with translations.
Dipped into that "Poedit" software for managing the translations, and it really looks like a great tool that will make life a lot easier for translators.

@bram-atmire Thanks for fixing my comments. Just a note: The current commit message looks a bit strange.
@tdonohue We could check if DSpace would qualify for the free open source tier of Transifex: https://docs.transifex.com/projects/open-source-project This would make it really easy to contribute new translations (there is a nice web editor).

We still need to find a solution for dynamic built keys like like:
type.toLowerCase() + '.page.titleprefix'
item.edit.tabs.status.buttons.' + operation.operationKey + '.label
item.edit.tabs.status.buttons.' + operation.operationKey + '.button
item.edit.tabs.status.buttons.' + operation.operationKey + '.button
item.edit.tabs.' + page + '.head

Because the translation loader this PR is built on isn't actively maintained, has no support for server side rendering, and because the main developer behind ngx-translate isn't quite sure how much support he can give the project in the future, we decided in the meeting of 2019-07-05 to close this PR, and keep working with ngx-translate's native format for the time being.
To make translating easier for non-developers we'll create a PR to flatten the existing json files. We'll also look in to ways of converting the json files to po or xliff format and back, so those formats can still be used by translators, just not live in the application.

This PR is currently replaced by #439.  More thoughts/opinions welcome there.


[hotfix][streaming] Fix the wrong word used in the comments in class KeyedStream

Fix the wrong word used in the comments in class KeyedStream

What is the purpose of the change

This pull request correct the wrong word used in the comments in class KeyedStream...

Brief change log

replace minimize with maximize in the comments for max(int) function in class KeyedStream.

Verifying this change
This change is a trivial rework cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): ( no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not applicable)

Thanks for spotting this.
Merging...


Updated to qcio 0.10.1 which uses Structure instead of Molecule.

Note. Test failing because https://conda.anaconda.org/intel/linux-64/intel-openmp-2023.2.0-intel_49495.tar.bz2#273b07565b50b7a53086aaf4893ec999 has suddenly become private. Not sure if this is a momentary thing that Intel screwed up or a long-term change. Can shift to conda-forge but for now will punt on the issue in case this is just a messed up permissions things with Intel/Anaconda for a bit.


add '+' to list of sigils at https://matrix.org/docs/spec/appendices.html#common-identifier-format

as pointed out by yksmd at https://matrix.to/#/!cURbafjkfsMDVwdRDQ:matrix.org/$151223884521WkqFZ:willworkforcookies.com

dup #1029


feat(pageserver): filter keys with gc-compaction

Problem
Part of https://github.com/neondatabase/neon/issues/8002
Close https://github.com/neondatabase/neon/issues/8920
Legacy compaction (as well as gc-compaction) rely on the GC process to remove unused layer files, but this relies on many factors (i.e., key partition) to ensure data in a dropped table can be eventually removed.
In gc-compaction, we consider the keyspace information when doing the compaction process. If a key is not in the keyspace, we will skip that key and not include it in the final output.
However, this is not easy to implement because gc-compaction considers branch points (i.e., retain_lsns) and the retained keyspaces could change across different LSNs. Therefore, for now, we only remove aux v1 keys in the compaction process.
Summary of changes

Add FilterIterator to filter out keys.
Integrate FilterIterator with gc-compaction.
Add collect_gc_compaction_keyspace for a spec of keyspaces that can be retained during the gc-compaction process.

Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[ ] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[ ] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[ ] Do not forget to reformat commit message to not include the above checklist

ready for review :) thanks for the comments


Justify bibliographically the paper selection, the descriptors, inclusion and exclusion criteria used to select paper

You have to clearly justify bibliographically your paper selection, your descriptors, inclusion and exclusion criteria you used to select paper, and the aspects you analyze, in such a way that your viewpoint is rationalized.

Add a sentence after the keywords, and flow chart and just acknowledge.
Maybe a table-ish thing here.


Adds Support to Outside RTH Limit Order for Interactive Brokers

Expected Behavior
Be able to place limit orders that fill outside regular market hours when an algorithm is deployed with interactive Brokers.
Actual Behavior
When an algorithm places a limit order outside regular market hours, it is not filled, since a specific property, OutsideRth, of the IB Order object must be set to true.
Potential Solution
Adds a new property to InteractiveBrokersOrderProperties.
Checklist

[x] I have completely filled out this template
[x] I have confirmed that this issue exists on the current master branch
[x] I have confirmed that this is not a duplicate issue by searching issues

@StefanoRaggi we can we also add support for Trailing Stop loss?
😄  so that I can implement the same for Zerodha!


Translations not working

The problem
It seems that the translations for this integration is broken since updating to HA 2023.4.
All states are reported as code values, instead of the translations.
Not even the English states are reported correctly.
Version of Easee integration having the issue?
v0.9.48
Version of Home Assistant Core having the issue?
2023.4.2
Anything in the logs that might be useful for us?
No response
Additional information
No response

@Birdman86 What is your preferred language?

Latest version fixed this for me.


Two Issues (One Major, One Minor)

More important issue; attempted to follow the tutorial, but the "body" Dynamic content does not show up when clicking in the body box.
Less important issue; "Click anywhere in the Body box to open a Dynamic content window opens with values from the previous actions in the logic app."
This sentence should read, "Click anywhere in the Body box to open a Dynamic content window. This window opens with values from the previous actions in the logic app."

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

ID: ef5fcc3f-8c9e-93dd-0875-3fcbe1243480
Version Independent ID: f579b0d9-0eb0-6f4b-2f31-933d12d9608f
Content: Use Azure Monitor Logs with Azure Logic Apps and Power Automate - Azure Monitor
Content Source: articles/azure-monitor/platform/logicapp-flow-connector.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @bwren
Microsoft Alias: bwren

Thanks for bringing this to our attention. Your feedback has been shared with the content owner for further review.

#label:"CreateAzMonWIFeb2021"

Thank you for your contribution to the Azure Monitor documentation. We have created a workitem for this issue in our internal backlog database. We will prioritize it and make any necessary changes as we are able.
#please-close


about the blur patch gerneate

I am new to the blind super-resolution.
and i am confused about the data generate.
may i ask is the blur image patch is generated by first get patch then blur?
and if i bluring the whole image and the get patch? is that suitable?
thank you!

Hi! These two methods are almost equal. The difference might occur in edges, which could be solved by reflection padding--'nn.ReflectionPad2d'.


IA-398 Ensure OrgUnit and Group have same version

I have added the constraint via a postgres function and trigger that are installed via a migration.
A few drawbacks:

Only works with postgres
Not visible in the datamodel
Will not display a nice error but normally the UI shouldn't allow it so it's ok

As @mestachs remarked we will need to check in staging/prod if there is no conflict already in the database before deploying, or it will block the deployment.
Here is the relevant SQL query (which need to return 0)
select count(*) from iaso_group_org_units go
            join iaso_group on (iaso_group.id = go.group_id)
            join iaso_orgunit on (iaso_orgunit.id = go.orgunit_id)
            where iaso_orgunit.version_id != iaso_group.source_version_id)

I have done the benchmark with seed_test_data, strangely the dhis_ou2 part where it create the instance is the same but the whole command with the instance form is slower. Don't know why. Maybe it comit only latter or it check something in the form creation?
For origin/developement:
processed in 11.61 seconds
docker-compose run iaso manage seed_test_data --mode=seed   0,61s user 0,11s system 1% cpu 43,859 total

For this branch
created orgunits 1332 [...] processed in 12.00 seconds
docker-compose run iaso manage seed_test_data --mode=seed   0,57s user 0,17s system 0% cpu 1:28,09 total

Methodolgy, I used a fresh database by changin which database to use in the docker.
Replace in docker-compose on line  36 RDB_DB_NAME to iaso2
git checkout origin/development
docker-compose stop
docker-compose start db

docker-compose exec db psql -U postgres iaso -c "drop database iaso2"
docker-compose exec db psql -U postgres iaso -c "create database iaso2 owner postgres"
docker-compose run iaso manage migrate
# check if the tricher is there
docker-compose exec db psql -U postgres iaso -c "\d iaso_group"
time docker-compose run  iaso manage seed_test_data --mode=seed --dhis2version=2.35.3

Then idem but with git checkout IA-398-ensure-same-version-group-orgunit

I retried with commenting the Instance creation code and it's 0:28 vs 1:06

New version with count is at 0:37 seconds.
I tried with using atomic() in dhis2_ou_import.handle()  and setting the constraint as defered with connection.cursor().execute('SET CONSTRAINTS ALL DEFERRED') but it made no impact on performances

Performence are now on par with before

from django.db import connection
connection.cursor()
cur=connection.cursor()
query="""select iaso_group.name as group_name, iaso_group.source_version_id as group_version_id, iaso_orgunit.name as orgunit_name, iaso_orgunit.version_id as orgunit_version_id

         from iaso_group_org_units go
            join iaso_group on (iaso_group.id = go.group_id)
            join iaso_orgunit on (iaso_orgunit.id = go.orgunit_id)
            where iaso_orgunit.version_id != iaso_group.source_version_id"""
cur.execute(query)
for r in cur.fetchall():
    print(r)
EOF

script to check if there is any offending unit in an env


Refactor SpotifyOauthError class

add error and error description to SpotifyOauthError to reflect the data returned by web api when error happens
unit test to SpotifyClientCredentials.get_access_token is added for invalid client

Thanks for that, can you add a quick entry to the changelog please?


Adding support for tar.lzma

Adding support for tar.lzma

@lowks @mitsuhiko I believe, package abandoned.


Fix contracts that contain double type and float operations

[x] Add class for SafeDateTime operations where contract developers can use with enough flexibility for precision.
[x] Replace time operations and other codes in contracts that cause double type usage and float operations in IL codes.
[x] Fix remaining audit errors in contracts
[x] Enable contract auditor (replace AssemblyChecker with the new one)

:x: Build AElf <IP_ADDRESS>1 failed (commit https://github.com/AElfProject/AElf/commit/554e625e2c by @aerkol)

:x: Build AElf <IP_ADDRESS>8 failed (commit https://github.com/AElfProject/AElf/commit/f9d4f90789 by @aerkol)

Building contracts with overflow check helps passing the contract auditor validations, however it somehow breaks some of the test cases that shows the signs that there is an overflow during the tests. Disabling overflow check now and not enabling build with overflow check in contracts. This is to be fixed later.

:white_check_mark: Build AElf <IP_ADDRESS>2 completed (commit https://github.com/AElfProject/AElf/commit/8de81386f5 by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>5 completed (commit https://github.com/AElfProject/AElf/commit/3c20b3c698 by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>0 completed (commit https://github.com/AElfProject/AElf/commit/5087275049 by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>2 completed (commit https://github.com/AElfProject/AElf/commit/7b50dda661 by @aerkol)

:x: Build AElf <IP_ADDRESS>5 failed (commit https://github.com/AElfProject/AElf/commit/8de31173cc by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>4 completed (commit https://github.com/AElfProject/AElf/commit/53a4e43941 by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>1 completed (commit https://github.com/AElfProject/AElf/commit/de606cf0dd by @aerkol)

Summary

We need to implement IL code processing monitoring to prevent DOS completely.
We need to fix failing test cases when contracts are built with "check for arithmetic overflow", then we can enable float ops validator in contract auditor. Currently all contracts passes this check once they are built with -checked flag but unfortunately test cases fail. This points out to an existing overflow in contracts with those test cases, further investigation is required.
Preventing float op codes brings some minor disadvantages such as contract devs can't use foreach to iterate through arrays (ienumerables are fine).

:x: Build AElf <IP_ADDRESS>0 failed (commit https://github.com/AElfProject/AElf/commit/43857905e3 by @aerkol)

:white_check_mark: Build AElf <IP_ADDRESS>1 completed (commit https://github.com/AElfProject/AElf/commit/f9c9b5cfd9 by @aerkol)

we can merge and change it later

we can merge and change it later

Sure, adding DateTimeHelper now, will be pushing soon

Fixed conflicts now fixing the remaining build errors

:x: Build AElf <IP_ADDRESS>7 failed (commit https://github.com/AElfProject/AElf/commit/1aaa8633e4 by @aerkol)

:x: Build AElf <IP_ADDRESS>2 failed (commit https://github.com/AElfProject/AElf/commit/3173a578ed by @aerkol)


Switch to command line tools xcode before running tests on mac

Switches xcode path to /Library/Developer/CommandLineTools before running tests. This should be the default xcode path anyway (when the machine is idle). Due to https://github.com/adoptium/temurin-build/pull/3492, after a jdk8 build the machine will be stuck on /Applications/Xcode-11.7.app/Xcode.app/Contents/Developer which causes errors with gcc and make
14:06:42       [exec] gcc -D_JNI_IMPLEMENTATION_ -D_TRIVIAL_AGENT -O0 -g3 -pedantic -c -Wall -std=c99 -fPIC -fno-omit-frame-pointer -static-libgcc -o /Users/jenkins/workspace/Grinder/aqa-tests/system/aqa-systemtest/openjdk.test.modularity/bin/tests/com.test.jlink/native/lib/osx/JniTest.o -arch arm64 -I. -I/Users/jenkins/workspace/Grinder/aqa-tests/system/aqa-systemtest/openjdk.test.modularity/bin/tests/com.test.jlink/native/lib -I/Users/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/Contents/Home/include/darwin -I/Users/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/Contents/Home/include -I/usr/include JniTest.c
14:06:42       [exec] make[2]: Leaving directory '/Users/jenkins/workspace/Grinder/aqa-tests/system/aqa-systemtest/openjdk.test.modularity/src/tests/com.test.jlink/native'
14:06:42       [exec] makefile:192: JAVA_EXECUTABLE set to /Users/jenkins/workspace/Grinder/openjdkbinary/j2sdk-image/Contents/Home/bin/java/
14:06:42       [exec] xcrun: error: unable to load libxcrun (dlopen(/Applications/Xcode-11.7.app/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib, 0x0005): could not use '/Applications/Xcode-11.7.app/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib' because it is not a compatible arch).
14:06:42       [exec] make[2]: *** [makefile:223: /Users/jenkins/workspace/Grinder/aqa-tests/system/aqa-systemtest/openjdk.test.modularity/bin/tests/com.test.jlink/native/lib/osx/JniTest.o] Error 1
14:06:42

see https://ci.adoptium.net/job/Grinder/7745/console
I've rebuilt that failing job, https://ci.adoptium.net/job/Grinder/7749/console, with this pr's changes. Should pass 👍🏻

Runs as expected
16:30:48  Switching Xcode to command line tools
[Pipeline] sh
16:30:49  + sudo xcode-select --switch /
[Pipeline] dir

It should affect x64 too. Not sure why 7750 failed, looks like it failed to download the binary. 7751 looks good

Incase 7750 failed because it ran on a 1014 box, ive kicked off https://ci.adoptium.net/job/Grinder/7752/console on test-macstadium-macos1014-x64-1. It ran the xcode switch without error

This makes me a little nervious as we have others using our test suite and it feels risky to assume the path.
I thought we were putting something in place to reset the default after the builds - did that not go in or is this a mitigation for any situation where it aborts before doing so?

I thought we were putting something in place to reset the default after the builds - did that not go in or is this a mitigation for any situation where it aborts before doing so?

A mitigation.

it feels risky to assume the path.

I think switching to / is safe but I am not certain. @sophia-guo Are there any variables/fields in the test scripts which are set/used when running specifically on Adoptium machines?

What is the impact of this change for other vendors, Alibaba, Huawei, OpenJ9/Semeru who use this same codebase with regards to this change.

What is the actual risk at the moment? A quick check suggests that neither of the two aarch64 build machines have a ci.role.test label so the testing should be immune to experiencing the problem unless a build is explicitly sent to one of them.

Thats true. Similarly the jdk builds wont run on the test mac aarcn64 boxes so we're reassured there too. So not too urgent then, but I would like to (in some capacity) cover the case where a jdk build runs on a test machine or a test runs on a build machine.

What is the impact of this change for other vendors, Alibaba, Huawei, OpenJ9/Semeru who use this same codebase with regards to this change.

If they run test jobs on mac machines, xcode will try to reset to the 'default' toolset, found in /Library/Developer/CommandLineTools, during the setup stage of the test job. If this path is not available I expect the test job will crash. So this would affect others.
Is there a feature in the test scripts which enable us as Adoptium to use variables that are specific to us? I could wedge this pr in there

Sounds like we're at effectively zero risk at the moment for most standard operations, and potential risk to community members utilising or opens scripts, so I suggest we postpone this until after the release where we can evaluate the potential impact in more detail.

Are there any variables/fields in the test scripts which are set/used when running specifically on Adoptium machines?

I don't think we have right now.

If they run test jobs on mac machines, xcode will try to reset to the 'default' toolset, found in /Library/Developer/CommandLineTools, during the setup stage of the test job. If this path is not available then I expect the test job will crash. So this would affect others.

More precisely, if they run system test jobs on mac.  It would affect them if they are trying to compile system test code, so in the case of running system tests.  An option would be to check if that path is available (during the environment check done by TKG), and if not, exit with a useful error.
Is this PR still in play or needed (since the switch to Orka machines)?  Not sure I have seen system test failures on mac platforms recently.

If they run test jobs on mac machines, xcode will try to reset to the 'default' toolset, found in /Library/Developer/CommandLineTools, during the setup stage of the test job. If this path is not available then I expect the test job will crash. So this would affect others.

Is this PR still in play or needed (since the switch to Orka machines)? Not sure I have seen system test failures on mac platforms recently.

Almost certainly not. Also with the job restrictions plugin which now separates build/test systems there should be no risk even if we were to use non-orka systems as the problems described are only caused by builds changing the defaults on machines that tests run on.


Move buildmaster from Linode to AWS (tracking issue)

cc @larsbergstrom
Async steps

[ ] Update all Salt minions to say master: build.servo.org in /etc/salt/minion; amend https://github.com/servo/servo/wiki/Buildbot-administration#linux to reflect this change
[ ] remove Longview states from SaltFS, since they're strictly for Linode instances
[X] Select appropriate size AWS instance for new master

According to Longview, current master CPU hits 24% of one core, memory stays under 4GB, and disk usage is around 13GB.
an m3.medium instance on AWS has 1 core and 4.02GB RAM

[ ] manually create AWS instance, give it an elastic IP, install Salt
[ ] Follow instructions at https://github.com/servo/servo/wiki/Buildbot-administration#linux to set up the AWS host as servo-master and run a Salt highstate
[ ] Copy Pillar data directly to new master with sftp
[ ] Copy /etc/salt/pki/master directly to new master with sftp
[ ] Test that new master can connect to all minions, such as running a debug highstate
[ ] Test whether Homu service is running
[ ] Verify that all requisite ports are permitted by the new master's security group
[ ] Check all Homu-enabled repos to verify that hooks (https://github.com/servo/servo/settings/hooks) use build.servo.org rather than the Linode master's IP

At 9am Wednesday 3/30

[ ] sftp /home/servo/homu/main.db from old master to new; restart homu
[ ] In the Cloudflare interface, edit build.servo.org record to point at new master. All webhooks use DNS, so they will not need to be modified.
[ ] Retry a failed build to verify that everything's working

We actually don't have instructions for setting up a Salt master yet, so I'll need to write those up and add them to the wiki (i.e. installing the right version of the right package).
Also, if you're trying to do this as a multimaster transition (which I recommend) then you'll need to first list both masters in the minion configuration file, then after verifying the new master is correctly set up removing the old one. Note: if you're going to give both masters servo-master as an ID, don't have them connect to each other or they will get confused by seeing two minions with the same ID. (This affects the copying the /etc/salt/pki/master step).

The private google doc should have some possibly out of date instructions for setting up a salt master. I think it was mostly bootstrappable except for some minor things. Thought these days, we probably have things like minion keys that need to be dealt with. When I wrote the instructions I was doing a totally fresh master :)

I'd be interested in taking a peek at that doc purely out of curiosity :)
As for the DNS, the fact that Homu and nginx are running on the same box as the Salt master is just an artifact of our environment, and we shouldn't bake it into our configuration files. We should add a separate DNS entry for salt.servo.org (pointing at the new master, via A record not CNAME). In the case of multimaster, this lets us set the minion configuration to say:
master:
  - build.servo.org
  - salt.servo.org

right after we set up the new master. After restarting the minions and checking connectivity to the new master, we can update it to say simply:
master: salt.servo.org

This lets us decouple the DNS changes for Salt from the DNS changes for Homu, when we switch over the build.servo.org DNS record.
What's the timezone for the 9am switchover? I may or may not be awake that early.

I think it was originally a private etherpad, and those servers have since been moved behind a firewall and then burned down (ether-pocalypse).
It's 9AM US Pacific time :-)

@aneeshusa Thanks for the feedback!
I just checked the secrets doc and it does not currently contain any setup instructions for the build master.
How much of the master setup can we do through Salt itself?

Master setup:
For now, I just plan to create a script to install the correct salt-master package. Setting up the configuration file and start the corresponding service can be manual for now, as it is for setting up a new minion (although Salting this is on my todo list).
More complicated setup is IMO not worth automating right now; e.g., keeping the list of accepted minion keys in sync would want some kind of CMDB (even if it's just flat files), and ditto for keeping the pillars synced. (GitFS should keep the file tree synced).
Checklist:
We should explicitly separate setting up a Salt minion on the new machine from setting up a Salt master on the new machine on the checklist (since we haven't Salted the process of setting up a Salt master yet). It looks like the checklist already does this, but I'd like to be more clear for that section:

Create new EC2 instance, assign it an elastic IP
Install a Salt minion using the instructions from https://github.com/servo/servo/wiki/Buildbot-administration#linux and run a local highstate (see my later comments about the ID)
Install the Salt master package with instructions from the wiki (TODO: write these instructions)
[various master configuration steps - pillar data, file tree, PKI data, master config file?]
Start the salt-master service on the new machine
Point minions at both machines, etc.

We also need to add some more steps to the switchover. Earlier, I was thinking to reuse the servo-master ID on the new machine, but on further reflection I think this will be more trouble than it's worth (as I mentioned in an earlier comment, we'd need to special-case the minion configs, edit the PKI files, etc.). Instead, we should be using separate IDs for each machine; I'm writing this up in more detail now and will leave another comment.
Also, I have a busy week, so any chance of pushing the switchover date back a few days would be appreciated!

Salt minion IDs are meant to be unique, so we should follow the convention instead of trying to reuse the servo-master ID, as it will cause trouble when running with two hot masters. Here's my new thinking:
New steps (we should do these before bringing up the new master):

Amend the top file so that the servo-master section is amended to servo-master\d+ in order to handle multiple masters.
We should also update the .travis.yml file to use servo-master1
Switch the current master ID from servo-master to servo-master1. Steps to take on the current master:

Edit the minion ID in the /etc/salt/minion file (removing the /etc/salt/minion_id file if necessary)
Go into the /etc/salt/pki/master/minions directory and rename the servo-master file to servo-master1
Restart the Salt minion, and once it comes back up, confirm connectivity with test.ping and targeting with a highstate in test=True mode

At this point, we can proceed with setting up the new machine, and assigning it a Salt minion ID of servo-master2.
Also, I don't know what I was thinking yesterday with the DNS records, but here's my updated recommendations after some sleep:

Salt minion IDs should match the local hostname on each machine (we should Salt this/add to setup instructions on wiki at a later time)
Each machine should also get a corresponding A record, e.g.. A records for servo-master1.servo.org and servo-master2.servo.org pointing at the old and new masters.
Use CNAME records for functional identification, i.e. build.servo.org.

The goal is that for a given machine, the Salt minion ID == the hostname for the machine == the DNS A record for that machine, and that this is an immutable identifier for that machine. Separately, when we point at a given hostname for functional reasons (i.e. the Homu webhooks), we should use a CNAME record to point to the appropriate machine, because the particular machine that is responsible for these settings could change at any time and the application should not know.
Updated minion config settings:
master:
  - servo-master1.servo.org
  - servo-master2.servo.org

After the switchover:
master:
  - servo-master2.servo.org

Since we'd like the minions to connect to all the masters and not just one, we can use the immutable names directly and we don't need a salt.servo.org CNAME record anymore. This also will make it easier to go back to multimaster mode in the future if needed.
We may also want to consider adding master_alive_interval: 30 to our minion configs: https://docs.saltstack.com/en/2015.5/ref/configuration/minion.html#master-alive-interval, although this isn't necessary.

@aneeshusa The production salt setup is now dual-master. They're servo-master0 (the old linode host) and servo-master1 (the new AWS host). I've sftp'd all the secrets and master configs over, and they both yield identical ping and highstate results except that servo-master1 isn't aware of a few decommissioned hosts like servo-head.
I believe this covers our bases for a smooth transition on the saltfs side of things, and now the buildmaster+homu+DNS move is all that's left to worry about.

Everything (http://servo-master1.servo.org/homu/queue/servo == http://build.servo.org/homu/queue/servo, http://servo-master1.servo.org/buildslaves == http://build.servo.org/buildslaves) appears to be working correctly. https://github.com/servo/servo/pull/10285 shows that webhooks are working.

The only surprise that I ran into was that in /srv/pillar/buildbot.sls, master was set to servo-master, which had an IP hardcoded in the hosts file from https://github.com/servo/saltfs/blob/master/common/map.jinja . Changing that setting to master: build.servo.org and re-running the highstate causes the slaves to look up the buildmaster with DNS rather than directly, and solved the problem.
@aneeshusa, I read a bit about managing Salt with Salt and while I think it's a good idea to manage the salt config files, it looks like it introduces a variety of complications. If you'd like to invest the time into making it work, I'd happily help get a PR through, but for now I think that making this type of major changes to the Salt setup is such an infrequent occurrence that our effort is probably better focused on more commonly used parts of the system.

We're shutting down servo-master0 (the Linode host) at 5pm PST today. If you need logs from a build that happened overnight before then, substitute servo-master0.servo.org for build.servo.org in the URL to access them. After servo-master0 has been shut down, you'll have to rerun a build to get its results.

:fireworks:

:clap:
I did run a grep -r 'servo-master' against the saltfs repo, but didn't think to check the pillars. We should remember to check the pillars for next time.
Does buildbot properly respect DNS TTLs/will it retry and reconnect if we change the build.servo.org DNS entry in the future?
We still list servo-master with the old IP on the wiki - can we update that?
Agreed on the Salt changes for now.

I don't know the details of how Buildbot handles TTLs, but kicking the buildslave processes seemed to cause them to repeat the lookup. So Buildbot itself probably isn't caching too hard.
Wiki updated. I'll open an issue to discuss migrating away from hardcoded IPs in common/map.jinja entirely.

Kicking buildbot should be good enough in that case.
Already opened an issue for common/map.jinja - see https://github.com/servo/saltfs/issues/287.


how is ndm different from kubernetes dynamic storage provisioners e.g. GPD based provisioner

I would like to know the difference between ndm & dynamic storage provisioner like kubernetes.io/gce-pd Is ndm not required if I use kubernetes.io/gce-pd

@AmitKumarDas , can you please explain how NDM fits with external provisioners? Noticed your work here: https://github.com/AmitKumarDas/storage-provisioner . Right now, in the provisioner property, we supply one by openebs which picks from storage pools, etc. How would it differ using this?

https://github.com/mayadata-io/storage-provisioner is the current repo.
This can interact with any CSI drivers to provision storage (read GPD, EBS, etc), attach them to nodes & hence make them discoverable via NDM.

NDM does not handle provisioning, it just manages the disk discovery,  so that higher level operators can make use of it as explained here


Visualize results

Thank you for your results.
I have finished the above , but as a new， i don't know how to visualize the test result just like in your video. Can you share your program of making the test results visualized?

Thank you for your interest!
This repo might help https://github.com/barrykui/kitti_object_vis
But for making a video the things are different. I have to say that making a video is not an easy task. We have to download video sequences from KITTI raw data, convert them to a comparable format, generate fixed ground planes and finally run the model. But if ur not going to make a video, there're lots of repos that helps to visualize the kitti data.

Thanks for your reply. I will check the code.


Error when launching

i get this error when i start the program
panic: websocket.Dial wss://gql-realtime-2.reddit.com/query: dial tcp: lookup gql-realtime-2.reddit.com on <IP_ADDRESS>:53: socks connect udp <IP_ADDRESS>:9050-><IP_ADDRESS>:53: network not implemented

goroutine 1 [running]:
main.readClients(0x3b9aca00?, 0xc0001ac8d0)
	/home/mamtfasc/Desktop/reddit-placebot-2023-master/main.go:102 +0xde7
main.main()
	/home/mamtfasc/Desktop/reddit-placebot-2023-master/main.go:26 +0x30e

i'm running ubuntu 22.04 and i have tor working

Try this
sudo nano /etc/tor/torrc
Use DNSPort 53 setting in torrc and configure nameserver to <IP_ADDRESS>

What would the Torrc config file look like on Windows? I am getting the same error.

What would the Torrc config file look like on Windows? I am getting the same error.

Create a file named torcc at the Tor/ directory

Here is my config and it is still giving the error.

The error is unrelated, there's no accounts

Found it. There is missing quotation mark in users.json.rename.

Try this sudo nano /etc/tor/torrc
Use DNSPort 53 setting in torrc and configure nameserver to <IP_ADDRESS>

i tried it but it still doesn't work

Try this sudo nano /etc/tor/torrc
Use DNSPort 53 setting in torrc and configure nameserver to <IP_ADDRESS>

i tried it but it still doesn't work

Try with nameserver to <IP_ADDRESS> instead

Try this sudo nano /etc/tor/torrc
Use DNSPort 53 setting in torrc and configure nameserver to <IP_ADDRESS>

i tried it but it still doesn't work

Try with nameserver to <IP_ADDRESS> instead

still the same

that's not mine, i'm not getting any errors from tor

@GionotranteBolotroloco My bad, the config file must be in %APPDATA%/tor/

@GionotranteBolotroloco My bad, the config file must be in %APPDATA%/tor/

i'm on linux so it's in /etc/tor/torrc but even after adding the things you said it still isn't working

i have the same issue, i'm on the same version of ubuntu, can somebody explain what should i do?

I'm having launch problems also. It keeps showing a login error, but I'm sure the file is filled in when I save it. Then after running this error and opening it, it's empty showing only []. I don't know what to do.
`PS C:\Users\X\OneDrive\Desktop\reddit-placebot-2023-master> ./redditplacebot -minX=1134 -minY=337
Waiting for login to finish...
2023-07-25T00:30:26.127+0200    ERROR   reddit-placebot-2023-master/client.go:69        Login failed    {"username": "", "username": ""}
main.(*Client).Login
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/client.go:69
main.main.func1
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/main.go:33
2023-07-25T00:30:30.618+0200    ERROR   reddit-placebot-2023-master/client.go:69        Login failed    {"username": "", "username": ""}
main.(*Client).Login
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/client.go:69
main.main.func1
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/main.go:33
Login finished!
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x8 pc=0x50a3cf]
goroutine 1 [running]:
main.(*Board).GetDifferentData(0xa44b020)
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/board.go:43 +0x7f
main.(*Worker).Run(0xa425d00)
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/worker.go:37 +0x4e
main.main()
C:/Users/X/OneDrive/Desktop/reddit-placebot-2023-master/main.go:47 +0x5b8`


Dataframe for Qiskit Experiments

The complicated data structure inside the Qiskit Experiments class, particularly ExperimentData, makes advanced usage of the experiment framework harder. Experimentalists may hesitate to use such framework for their research project. Based on our users survey, we propose new experiment data structure built on top of the pandas dataframe, which is one of the most celebrated python package in the data science community (and we can also reduce maintenance overhead of custom build classes).
This PR focuses on the update of analysis results. In future we can also adopts data frame for experiment (circuit) results, i.e. ExperimentData.data(), for better metadata management.

Thanks @t-imamichi for the suggestion. We are aware of that package but we intentionally chose pandas for now. The number of analysis result entries in ExperimentData is estimated to be roughly ~100 and performance gain with Rust implementation is not quite drastic, and we want to chose a popular package with lot of documentation so that we can avoid maintenance/support overhead.


Bug

What version of Go are you using (go version)?

$ go version
go version go1.23.3 linux/amd64

Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/gitpod/.cache/go-build'
GOENV='/home/gitpod/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/workspace/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/workspace/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/home/gitpod/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/home/gitpod/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.23.3'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/gitpod/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build4277531552=/tmp/go-build -gno-record-gcc-switches'
GOROOT/bin/go version: go version go1.23.3 linux/amd64
GOROOT/bin/go tool compile -V: compile version go1.23.3
uname -sr: Linux 6.1.91-060191-generic
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy
/lib/x86_64-linux-gnu/libc.so.6: GNU C Library (Ubuntu GLIBC 2.35-0ubuntu3.8) stable release version 2.35.
gdb --version: GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1

What did you do?

What did you expect to see?
What did you see instead?

Related Issues

bug #68989 (closed)
Bughunter #70775
Update funny #60279 (closed)
go bug #67882 (closed)
go fix #42243 (closed)
go version go1.21.5 linux/amd64 #67008 (closed)
s #48271 (closed)
go fix #51512 (closed)
go bug  #34172 (closed)
some issues here ! #39105 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)


ng test --lint results in "Module build failed: TypeError: Linter is not a constructor"

Please provide us with the following information:

OS?
OS X El Cap
Versions.
angular-cli: 1.0.0-beta.22-1
node: 6.9.1
os: darwin x64
Repro steps.
Run ng test --lint
The log given by the failure.
iDevBook01:console jr$ ng test --lint

08 12 2016 07:25:03.034:WARN [karma]: No captured browser, open http://localhost:9876/

ERROR in ./src/test.ts
Module build failed: TypeError: Linter is not a constructor
    at Object.lint (/Users/jr/dev/console/console/node_modules/tslint-loader/index.js:40:16)
    at Object.module.exports (/Users/jr/dev/console/console/node_modules/tslint-loader/index.js:103:8)
08 12 2016 07:25:03.045:INFO [karma]: Karma v1.2.0 server started at http://localhost:9876/
08 12 2016 07:25:03.045:INFO [launcher]: Launching browser Chrome with unlimited concurrency
08 12 2016 07:25:03.080:INFO [launcher]: Starting browser Chrome
08 12 2016 07:25:04.799:INFO [Chrome 54.0.2840 (Mac OS X 10.11.6)]: Connected on socket /#1TmyXeQs7WSWHxlAAAAA with id 64795253
08 12 2016 07:25:04.952:WARN [reporter]: SourceMap position not found for trace: undefined
08 12 2016 07:25:04.953:WARN [reporter]: SourceMap position not found for trace: undefined
Chrome 54.0.2840 (Mac OS X 10.11.6) ERROR
  Uncaught Error: Module build failed: TypeError: Linter is not a constructor
      at Object.lint (/Users/jr/dev/console/console/node_modules/tslint-loader/index.js:40:16)
      at Object.module.exports (/Users/jr/dev/console/console/node_modules/tslint-loader/index.js:103:8)
  at src/test.ts:71

Module build failed: TypeError: Linter is not a constructor

Mention any other details that might be useful.
I'm using yarn and have performed a clean re-install of angular-cli (yarn remove && yarn add) for the upgrade from .beta-21 to .beta-22 so that all indirect dependencies are on their latest version as well. However, running a yarn check (checks the integrity of all specified version dependencies) yields this error:
iDevBook01:console jr$ yarn check
yarn check v0.17.10
error<EMAIL_ADDRESS>doesn't satisfy found match of<EMAIL_ADDRESS>warning<EMAIL_ADDRESS>could be deduped from 0.6.31 to<EMAIL_ADDRESS>error Found 1 errors.
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.

So it seems angular-cli maybe needs an upgrade of tslint-loader in its package.json?

Did some more digging, it appears tslint-loader resolves to version 2.1.5 for me (angular-cli's package.json specifies ^2.1.4, which has the following package.json:
  "name": "tslint-loader",
  "version": "2.1.5",
...
  "peerDependencies": {
    "tslint": "^3.0.0"
  },
}

So looks like we need an update of tslint-loader (its 3.x series supports tslint 4.0). So I have done a yarn add tslint-loader --dev and alas, my issue is fixed and ng test --lint works as it should.

Same problem with UNMET tslint dependency addressed in #3453


Missing documentation on how to enable pg extensions

What's the problem:

Recently, I was trying to use uuid-soop extension and after 2 days of trying I finally found the solution. So I decided to share this here, so other users can find the solution without wasting their time.

How to solve it?

Using bootstrap.initdb. Docs
Here is working example:

bootstrap:
  initdb:
    database: your-db-name
    owner: your-db-user
    secret:
      name: your-db-secret
    postInitTemplateSQL:
      - CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
      - CREATE EXTENSION IF NOT EXISTS <extension-name>;

What problems I face:

So first I created my own image with the init script which didn't work here for some reason.
Then I tried to put the CREATE EXTENSION script under postInitSQL.
Problem here is, command under postInitSQL section, run before database is created, so uuid extension is not available in that newly created database.
To solve it, I replaced postInitSQL with postInitTemplateSQL.

Todo:

I would like to contribute to docs and add this information.
Let me know, if I can contribute to docs.

Cheers 🎉

Hi @smitpatelx
Wow! yes please, if you can add an appendix in the documentation with some explanation and samples will be great!
Regards!

@smitpatelx why didn't you use postInitApplicationSQL?

Any news @smitpatelx ?

I tried postInitApplicationSQL and it works. Whats the difference between lifecycle of postInitApplicationSQL and postInitTemplateSQL.

I think it would make more sense if it was named something familiar to devs onboarding. I would also like to add lifecycle diagram of those three properties.

Init Application sounds like it will execute before the operator try to create StatefulSet. Or even before the database is available.

I find this confusing as well I've tried both postInitTemplateSQL and postInitApplicationSQ
      postInitApplicationSQL:
        - CREATE EXTENSION IF NOT EXISTS pg_tm_aux;
        - CREATE EXTENSION IF NOT EXISTS pgcrypto;

how can I troubleshoot this, or find a log of this not working?
if I delete the cluster and add it again I can see these logs from the initPod
{"level":"debug","ts":"2023-10-23T21:34:10Z","msg":"Executing query","caller":"pkg/management/log/log.go:181","logging_pod":"pg-sandbox01-1-initdb","sqlQuery":"CREATE EXTENSION IF NOT EXISTS pg_tm_aux;"}
{"level":"info","ts":"2023-10-23T21:34:10Z","logger":"pgaudit","msg":"record","logging_pod":"pg-sandbox01-1-initdb","record":{"log_time":"2023-10-23 21:34:10.055 UTC","user_name":"postgres","database_name":"app","process_id":"102","connection_from":"[local]","session_id":"6536e6d2.66","session_line_num":"1","command_tag":"CREATE EXTENSION","session_start_time":"2023-10-23 21:34:10 UTC","virtual_transaction_id":"3/16","transaction_id":"0","error_severity":"LOG","sql_state_code":"00000","application_name":"cnpg-instance-manager","backend_type":"client backend","query_id":"5308178863544375914","audit":{"audit_type":"SESSION","statement_id":"1","substatement_id":"1","class":"DDL","command":"CREATE EXTENSION","statement":"CREATE EXTENSION IF NOT EXISTS pg_tm_aux;","parameter":"<none>"}}}
{"level":"debug","ts":"2023-10-23T21:34:10Z","msg":"Executing query","caller":"pkg/management/log/log.go:181","logging_pod":"pg-sandbox01-1-initdb","sqlQuery":"CREATE EXTENSION IF NOT EXISTS pgcrypto;"}
{"level":"info","ts":"2023-10-23T21:34:10Z","logger":"pgaudit","msg":"record","logging_pod":"pg-sandbox01-1-initdb","record":{"log_time":"2023-10-23 21:34:10.084 UTC","user_name":"postgres","database_name":"app","process_id":"103","connection_from":"[local]","session_id":"6536e6d2.67","session_line_num":"1","command_tag":"CREATE EXTENSION","session_start_time":"2023-10-23 21:34:10 UTC","virtual_transaction_id":"3/18","transaction_id":"0","error_severity":"LOG","sql_state_code":"00000","application_name":"cnpg-instance-manager","backend_type":"client backend","query_id":"7066674530324667451","audit":{"audit_type":"SESSION","statement_id":"1","substatement_id":"1","class":"DDL","command":"CREATE EXTENSION","statement":"CREATE EXTENSION IF NOT EXISTS pgcrypto;","parameter":"<none>"}}}

but when I check they are missing
(⎈ |iad0-sandbox:postgres-test)➜  ~ k get pods
NAME                          READY   STATUS      RESTARTS   AGE
pg-sandbox01-1                1/1     Running     0          2m4s
pg-sandbox01-1-initdb-jp7km   0/1     Completed   0          2m41s
pg-sandbox01-2                1/1     Running     0          65s
pg-sandbox01-2-join-mhth9     0/1     Completed   0          100s
pg-sandbox01-3                0/1     Running     0          11s
pg-sandbox01-3-join-4pkxq     0/1     Completed   0          52s
(⎈ |iad0-sandbox:postgres-test)➜  ~ kubectl cnpg psql pg-sandbox01
psql (15.3 (Debian 15.3-1.pgdg110+1))
Type "help" for help.

postgres=# SELECT extname AS extension_name,
postgres-#        extversion AS version,
postgres-#        extconfig,
postgres-#        extcondition
postgres-# FROM pg_extension;
 extension_name | version | extconfig | extcondition
----------------+---------+-----------+--------------
 plpgsql        | 1.0     |           |
(1 row)

postgres=#

is this a new bug or am I doing something wrong?

Not entirely related, but I wonder how is it possible to enable extensions when using another bootstrap method, such as pg_basebackup.
My use case is that I have a source DB with extensions enabled. When creating the CNPG cluster with pg_basebackup and replica enabled bootstraping method, no extensions are created on the CNPG cluster.
Should I create the extensions manually after promoting the cluster or is there a better solution ?

I am having same issue.
      postInitApplicationSQL:
        - CREATE EXTENSION IF NOT EXISTS vector;

I tried postInitApplicationSQL / postInitSQL / postInitTemplateSQL
None of them actually activate pgvector.
I have to manually go in and use the command in the pod.
postgres-# SELECT * FROM pg_extension;
ERROR:  syntax error at or near "ls"
LINE 1: ls
        ^
postgres=# SELECT * FROM pg_extension;
  oid  | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+---------+----------+--------------+----------------+------------+-----------+--------------
 13541 | plpgsql |       10 |           11 | f              | 1.0        |           |
(1 row)

postgres=# CREATE EXTENSION vector;
CREATE EXTENSION
postgres=# SELECT * FROM pg_extension;
  oid  | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+---------+----------+--------------+----------------+------------+-----------+--------------
 13541 | plpgsql |       10 |           11 | f              | 1.0        |           |
 16390 | vector  |       10 |         2200 | t              | 0.5.1      |           |
(2 rows)

Looks like this was already fixed here, but just to clarify
The postInitSQL as mentioned here https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-BootstrapInitDB is executed as postgres superuser
The PostInitApplicationSQL is executed in thecreated database so extension will never be on the postgres database, but in the app database
The PostInitTemplateSQL it's a set of SQL to be added to the template1 database, you can find more information here https://www.postgresql.org/docs/16/manage-ag-templatedbs.html
Closing since this doesn't look like an issue now


Speed up ryhti client

Due to VSL and main branches diverging, there are loads of commits already in main. Will squash all of them into one.

Closing this one, will make new branch with one commit instead


Add Travis CI

Some sort of build testing would be good.

Testing creation of role, security group, lambda etc
Testing creation of spot fleet request

Releases done.


docs: add examples with orchestration integrations

We should add examples of integration with orchestrators like rktlet or nomad.

There's already documentation describing the existing integrations I wasn't aware of.
I just tried the Nomad guide linked there and it works for me.
We need to update the Kubernetes link to point to rktlet's getting started guide, though.


Support for COLOR_TEMP in Homematic dimmers

Proposed change
Introduced support for COLOR_TEMP for Homematic HM-LC-DW-WM. This support is added in pyhomematic by https://github.com/danielperna84/pyhomematic/pull/282
Type of change
Extension for Homematic light class to support COLOR_TEMP when set_color_temp is in the class. I had to use this method since the HM-LC-DW-WM has two channels that are both called LEVEL.

[x] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: https://github.com/danielperna84/pyhomematic/issues/280

Checklist

[x] The code change is tested and works locally.
[x] Local tests pass. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[x] I have followed the [development checklist][dev-checklist]
[x] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for [www.home-assistant.io][docs-repository]

If the code communicates with devices, web services, or third-party tools:

[ ] The [manifest file][manifest-docs] has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

The integration reached or maintains the following [Integration Quality Scale][quality-scale]:

[ ] No score or internal
[ ] 🥈 Silver
[ ] 🥇 Gold
[ ] 🏆 Platinum

@angelnu
Please fix flake8 / black.

Thanks @danielperna84 and @pvizeli for taking a look - I saw that the automated checks were not passing so I set the PR in draft until I had the chance to set up a dev environment. I am traveling this week so likely over the weekend.
This fix has a soft dependency on the change in pyhomematic: without it only the power of the light can be controlled but not the color. I saw that @danielperna84 integrated the change in pyhomematic: are you then creating there a new version so we can update the dependency here or because is a soft dependency the fix here can go without the new version in pyhomematic?
New to the community so learning the processes ;)

@angelnu please solve the CI erorrs :)

are you then creating there a new version so we can update the dependency here or because is a soft dependency the fix here can go without the new version in pyhomematic?

pyhomematic has already been updated with #31406 👍

@danielperna84 - then I think we are ready to merge this 👍

@danielperna84 is an update to the documentation necessary for this PR?

@springstan not really. The HomeMatic documentation doesn't cover such specific details about the services / platforms. 👍

Since the code works as it is IMO we can merge this. If any additional feature is needed for these type of LEDs it can be added later on.

@pvizeli any other changes you want before merging?

@pvizeli @danielperna84 - any other changes you want before merging? I have to manually patch each release of home assistant for my leds to work...
Thanks in advance.

Thanks @pvizeli !


#80 Add Java support

Fixes #80
Added Java support, but it seems like the Codegen still needs a few tweaks, currently it generates non-compilable code in some instances.
Issues I saw:

Some imports are not unused, and some imports that are needed are not present.

ContainerArgs does not get imported e.g.

Use of multiline string, this is a Java 15 feature, I'm not sure what Java language level the codegen is targeting, seems like the templates set Java 11 ?
Use of Map<String, String>, but setting a numeral value.

Figured I'd open this PR even with the above issues present.
EDIT: See my comments for examples of the above issues.

Hi @Asamsig, thanks a lot for the contribution! The code looks good ✅ I will review and test code locally before I can approve. As for the java program-gen issues, these are mostly known but it is better to open issues explicitly for each one of them in pulumi-java to track and fix them there.

@Zaid-Ajaj that is correct, at first I thought it edge cases related to kube2pulumi, but I've reproduced some already in pulumi-java.
I'm working towards contributing fixes there. 👍

@Asamsig that sounds awesome! thanks a lot 🙏

@Zaid-Ajaj I noticed the tests failed on Github Actions, so I took a look, and it seems that in the MultilineString test it actually expects a file to exist called MultilineString$[ext} (.java), and not a file called expectedMultilineString. I have amended my commit and force pushed, so it should now pass on CI. :)

@Asamsig thanks a lot for investigating and fixing the issue! I am now re-running the CI and will merge with all is green ✅


Upgrade to Java 23 JVM

Use AWS's distribution of Java 23 instead of Java 21, which should give us
performance and memory footprint improvements.

#2675
#2674  👈 (View in Graphite)
main

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

Merge activity

Dec 9, 2:17 PM EST: A user started a stack merge that includes this pull request via Graphite.


How can I connect multiple chains at once?

I am trying to integrate cosmos-kit within a new project, previously I was using a chain-id array to enable all chains at once, using keplr enable method, which accepts an array of chain-id:

Is it possible to do the same thing using cosmos-kit?
In your examples I can only see that an enable modal is opened for each chain you want to connect.

@DavideSegullo useWalletClient exposes wallet client, and the client object provides method enable, which supports chain array as parameter.
https://github.com/cosmology-tech/cosmos-kit/blob/55eedfab503a2abdb31d5fd4d047b63cfead3b36/packages/core/src/types/wallet.ts#L137

Hello @liujun93 , I had a look, but this seems to work only if you have already connected a wallet (e.g. Keplr), so if a walletRepo already exists.
How can I get this to work the moment I open the modal?

@DavideSegullo this method doesn't require a CONNECTED wallet, but need you to provide walletName as param. if it's not provided, it will use the currently CONNECTED wallet.
A walletRepo stores all chainWallets for a particular chain (you can even use chainName as the walletRepo identifier). So if a walletRepo already exists, the chain is also decided. The default modal provided by CosmosKit is about a walletRepo, and displays wallet status for a particular chain. So we can't get enable multiple chains work with this modal schema.
Maybe in the future when we design an advanced modal structure that displays multiple chains without making the modal look overloaded, we can integrate this method in the modal. :)

@DavideSegullo If you want to build an ibc dapp, you can use our ibc template
cca --name myibctransferapp --example --template ibc-transfer
also lots of other templates available here.
https://github.com/cosmology-tech/create-cosmos-app

@liujun93 — isn't there a way to do this programmatically and not in the modal? I think with client, I think it's enableChains or enableChainIds?

@liujun93 — isn't there a way to do this programmatically and not in the modal? I think with client, I think it's enableChains or enableChainIds?

Interested to see if this possible. Our team has been finding issues when using the hooks in some instances.

@dillu24
The best you can do for now
export default function Home() {
  const { connect } = useChain('cosmoshub');
  const { client } = useWalletClient();

  useEffect(() => {
    if (client) {
      client.enable?.(['cosmoshub-4', 'osmosis-1', 'juno-1'])
      client.getAccount?.('juno-4').then((account) => console.log(account))
      client.getSimpleAccount?.('juno-4').then((account) => console.log(account))
      client.getAccount?.('osmosis-1').then((account) => console.log(account))
      client.getSimpleAccount?.('osmosis-1').then((account) => console.log(account))
      client.getAccount?.('cosmoshub-4').then((account) => console.log(account))
      client.getSimpleAccount?.('cosmoshub-4').then((account) => console.log(account))
    }
  })

  return (
    <div style={{ textAlign: 'center', margin: '4rem' }}>
      <Button onClick={connect}>Connect</Button>
    </div>
  );
}

or
const { client } = useWalletClient('keplr-extension');

useEffect(() => {
  if (client) {
    client.enable?.(['cosmoshub-4', 'osmosis-1', 'juno-1'])
  }
})

Please use useChains in lastest version of CosmosKit.


Build depend on topkg.

Note, this needs https://github.com/ocaml/opam-repository/pull/6820 to be merged to work poperly.


Fix deprecated data type constructors usage

Collect some low hanging fruit while getting in touch with the codebase.
This PR focuses exclusively on deprecated data type constructors that were flagged as such on version 9.

I was wondering the same but they were using the constructors so I decided to box it. I'll wait for the devs but you raise a very interesting point. Thanks for the feedback!

I think some of this code was written before auto boxing was invented.  I actually have an internal branch where I'm cleaning up this type of thing already.  I've been holding off merging it because i want to minimize merge conflicts with the patch branch.  Our release process will have a window in it where it makes sense to merge it in.
Because this will conflict with and duplicate my internal branch, I am not going to accept the PR.  Thanks though.  I would also take a look at our patch submission tips for good guidance on how to best contribute.


Hotfix/check exists

Description

check objects and folders exist before any operation
integration check to see if deleted object or folder are still registered in db

Related issues

Type of change

[x] Bug fix (non-breaking change which fixes an issue)

Changes Made

added check_object_exists to check object exists and fail early with 404 before checking it belongs to user
refactor and added more check_folder_exists to check folder exists before doing anything
integration test to check objects are deleted properly

Testing

[x] Integration Tests

Mentions

will merge this into develop for now and ask someone to review it one it is released.

pushing this to develop and it can be reviewed there, as it is a hotfix

pushing this to develop and it can be reviewed there, as it is a hotfix


We need docs for AssetTargetFallback, both generally and migrating from PackageTargetFallback .

@Petermarcu commented on Fri Oct 06 2017
@richlander opened this here: https://github.com/dotnet/core/issues/725
We need docs for AssetTargetFallback, both generally and migrating from PackageTargetFallback .

@rrelyea commented on Tue Oct 10 2017
@karann-msft  - can you please help drive as necessary

@nkolev92 Please provide references to where appropriate information can be found, or at least identify the subject matter expert who can provide the details.

Sure @kraigb
I just migrated the issue, @emgarten implemented it so he should be able to provide some more details, ideally if he has some design docs stashed away.

Here is an example
Project target framework: net46
Package contains:

lib/netstandard1.3/a.dll
build/net46/a.targets

In normal mode without these properties set the user will get only build/net46/a.targets as assets from this package since ns1.3 is not compatible.
With PackageTargetFallback=netstandard1.6 the user will get lib/netstandard1.3/a.dll and build/net46/a.targets because NuGet finds the nearest compatible assets on a per folder basis. Selecting net46 from the build folder has no impact on the lib folder.
With AssetTargetFallback=netstandard1.6 the user will get only build/net46/a.targets. Instead of making the decision independently nuget will instead check all folders, then if zero items were found (meaning the package is not compatible) it will then act as if the project target framework is netstandard1.6. In this scenario the build folder has assets so AssetTargetFallback is not used.
Both of these properties work as fallback project TFMs, they allow the project to select assets from a package using something different from the current project TFM.
PackageTargetFallback is deprecated and only AssetTargetFallback should be used.
netcoreapp2.0 projects have AssetTargetFallback=net461 by default in new projects.

My first attempt at this was here: https://github.com/NuGet/docs.microsoft.com-nuget/pull/1264

My new outline:
Package Asset Selection
Pick most compatible assets (which TFM?)
If no compat assets, if ATF is set, try again with those.
example 1:
Project TFM is Net 472
Package contains Net460 and Net450
Answer: pick closest one net460
example 1b:
Project TFM is Net 472
Package contains Netstandard20 and net45
Answer: picks net45, cause it is same family
example 1c:
Project TFM is Net 472
Package contains Netstandard20 and netstandard 16
Answer: picks ns20, as it is more compat...see table..
example 2:
project tfm is netcoreapp 2.2
package contains netstandard 2.0 and netfx 461
answer: picks netstandard2.0
example 3:
project tfm is netstandard 2.0
package contains net461 and net40
answer: pick net461 (with NU1701 - we used ATF)
details on asset types

This should stay open :) We are still missing the docs :)


Is the URLDecode here up to the standard? (encode asymmetry)

Encodeurl, converted to %20, this must be right, but if other + comes over, it needs to be converted to space when decode.

encodeURL, 转成了%20, 这个肯定是对的, 但是如果其他+过来, decode的时候按说是需要转成空格。

But + can stay the same. Isn't it wrong to decode? I don't know how to use it here. I used it to decode the value of the query parameter twice, and then something went wrong.

但+可以保持原样，这样decode不是就错了吗？不知道这里怎么用的，用着用着对query参数的value做两次decodeurl，然后就出问题了。

Yes, there is a problem here. It should be the same in the path part and escaped in the query part. But generally no one has a + sign in the path? It is not easy to trigger this bug under normal circumstances. It should not be decoded twice here.

是的，这里是有问题的, 应该是在path部分保持原样, 在query部分转义；不过一般没人在path里面有+号？正常情况下不容易触发这个bug。应该是这里不能做两次decode。


Module not found: Error: Can't resolve '@angular/http'

Trying to use this module with the lastest jhipster causes
Module not found: Error: Can't resolve '@angular/http'
It seems The @angular/http is only available from RC versions of Angular2. Before it was angular2/http.
Are you plannign to fix this? ... any workaround?

It's already fixed in master by https://github.com/hipster-labs/generator-jhipster-entity-audit/commit/994e57138a0e42cf9c3ffa7b6dccb34a8d9f139c#diff-7c5bbb0a6f54ec0f7d165e8f40a101a1, just needs a release.
As a workaround until release, you can make the changes manually or install the npm module from Github.


RankSystem Support Also

Is your feature request related to a problem? Please describe.
Its a headache as i am using RankSystem and the plugin only support PurePerms/PureChat to get the Group Name so Whenever i use {group} it just dont send the Group Name.
Describe the solution you'd like
Adding the support of RankSystem Will fix this and help get rank names even with ranksystem plugin
Describe alternatives you've considered
None Yet.
Additional context
You can already read the Topic that describes everything.

MCPEToDiscord now supports RankSystem


PDP: Document that sslaccept=accept_ivalid_certs is added to all db conn strings

Background: https://prisma-company.slack.com/archives/C042HLMAC5U/p1669882940532849

👋 Hi there,
We're reviewing and tidying up our backlog to focus on the most relevant and impactful issues. After careful consideration, we're closing issues that haven't had any recent activity or align with our current priorities.
If you believe this issue is still important or unresolved, you're welcome to reopen it or create a new one with updated details. Your feedback is always valued and we're here to help ensure our docs continue to improve.
Thank you for your understand and contributions!


Universal Sentence Encoder Testing takes up too much memory

The testing for the universal sentence encoder takes up too much memory, so fails due to being 'killed' on circleci. So, since it passes locally in the same virtualenv setup as circleci, it has been commented out at present. Furthermore, either of the two universal sentence encoder tests can pass in circle ci, just not both at the same time, which further points to the fact that it is a memory usage issue rather than a correctness one.

I've been noticing this too lately.
nlp_primitives/tests/test_universal_sentence_encoder.py::test_regular PASSED [ 87%]
nlp_primitives/tests/test_universal_sentence_encoder.py::test_without_tensorflow PASSED [ 88%]
nlp_primitives/tests/test_universal_sentence_encoder.py::test_primitive_serialization PASSED [ 90%]
nlp_primitives/tests/test_universal_sentence_encoder.py::test_feature_serialization make: *** [Makefile:29: unit-tests] Killed


OVMF: update homepage

Tianocore was apparently moved from SourceForge to GitHub, so this updates the homepage of the OVMF package.
Motivation for this change
Repology reports old homepage as offline. https://www.tianocore.org/ovmf/ redirects to the updated one.
Things done

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

[ ] 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 nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Fits CONTRIBUTING.md.

backport: 81884ce1b46


API to run/configure the deployment

Can you elaborate here? Should this go into roadmap?

closing, no activity
Also it could be achieved outside kubespray repo as a contrib.


Design of the website

I think it would be nice to also give the Haxe lib site a new design, or at least adopt the design of the main Haxe page.

I guess we can close here!

\o/
On Thu, Jun 18, 2015, 19:02 Simon Krajewski<EMAIL_ADDRESS>wrote:

Closed #14 https://github.com/HaxeFoundation/haxelib/issues/14.
—
Reply to this email directly or view it on GitHub
https://github.com/HaxeFoundation/haxelib/issues/14#event-334685235.


unable to capture the authorization

when  passing an amount to the capture method $authorization = $authorization->capture(50); or capturing with an amount and fee included $authorization = $authorization->capture(50, 10); it captures an authorizatino successfully. However, when no amount is passed it fails $authorization = $authorization->capture(); . Let's fix this so the amount captured defaults to the total amount unless the user passes an amount
http://developers.finixpayments.com/?shell#step-7-capture-the-authorization

@michaelserna @rserna2010  i think this is a new feature for client libraries, could we also need to fix this in java, python and ruby as well ?

@phuonghuynh yes they should all contain this. looking at the balanced example this was supported: https://github.com/balanced/balanced-php/blob/5710bec8991c0984afcc0aec6e4f9be545680f53/src/Balanced/CardHold.php

@phuonghuynh can we make this an array as well to be consistent with the other syntax we use in the client.
Example:
$authorization = $authorization->capture(
    array(
      "capture_amount"=> 100,
      "fee"=> 50
));

This helps when we make feature additions to the API, (eg adding statement_descriptor to the request)


PANDARIA: Add webhook receiver

https://github.com/cnrancher/pandaria/issues/621

LGTM，and please squash the commits, thanks.


Symbols instead of strings for IDs

Urs recently suggested that symbols are more efficient than strings when used in Scheme's associated lists. @rettinghaus, would you support changing things from
<xsl:value-of select="concat('\tweak id #"', @xml:id, '" ')" />

to
<xsl:value-of select="concat('\tweak id #'', @xml:id, ' ')" />

?

Would do, but doesn't work (for me), so I won't.
\tweak id #'note-g2 g'
I think we should wait for LilyPond 2.20 and switch over to output-attributes.
http://lilypond.org/doc/v2.19/Documentation/changes/
Ok for you?

I'm currently using version 2.19.54, where it seems to work.

I'm currently using version 2.19.56. So what do I do wrong?!?
The internals say, it has to be a string.
http://lilypond.org/doc/v2.19/Documentation/internals/grob_002dinterface

Interestingly 2.19.56 doesn't set ids at all. Seems to be a mac build problem.

Obviously ids are deactivated in 2.19.56. I added a template here 8050955 to use output-attributes instead, which is not used by default for now. Please give it a try.


Implement /v1/playlists/{playlist_id} endpoint

this looks great, I haven't noticed Spotify has changed  its playlist api


Daytona headscale server fails after some activity time

Describe the bug
Unable to create workspace, check the screenshot.
To Reproduce
Steps to reproduce the behavior:

Run daytona server on remote metal machine
Run daytona locally
Setup new profile
Everything works
Wait 2 hours, server stops responding, can list workspace other stuff doesnt' work
restart remote server
try to create new workspace
💀

INFO[1255] API REQUEST                                   URI="/gitprovider/github/%3CPERSONAL%3E/repositories" latency=1.320540363s method=GET status=200

INFO[1265] API REQUEST                                   URI=/health latency="2.346µs" method=HEAD status=404

INFO[1266] API REQUEST                                   URI=/profile/ latency="409.985µs" method=GET status=200

INFO[1266] API REQUEST                                   URI=/workspace/ latency="712.136µs" method=GET status=200

INFO[1266] API REQUEST                                   URI="/gitprovider/context/https%253A%252F%252Fgithub.com%252FEurekaLabsAI%252Fmicrograd" latency=110.503244ms method=GET status=200

INFO[1267] API REQUEST                                   URI=/target/ latency="397.719µs" method=GET status=200

INFO[1267] API REQUEST                                   URI=/server/config latency="399.461µs" method=GET status=200

ERRO[1277] API ERROR                                     URI=/server/network-key error="Error #01: failed to generate network key: failed to create ApiKey: rpc error: code = DeadlineExceeded desc = context deadline exceeded\n" latency=10.001169155s method=POST status=500

Screenshots

Desktop (please complete the following information):

OS: Ubuntu 22.04 running server and local MacOs Sonoma
Daytona Version:  0.22.0 on both

Had the server running for 2 days with no interruptions now. I believe the issue might've been resolved with the recent Headscale version updates.
Closing this for now but feel free to reopen if it happens again.


Way to execute code on shutdown?

I want to maintain an event metrics client across multiple lambda invocations so the server does not get spammed. However, I need to be able to flush the queue on shutdown.
Does the AWS go lib have any way to execute code on shutdown? If I simply add code to the end of main (after the lambda.Start), or using defer, will it get executed?
From viewing the code it looks like the main method will finish if there is a runtime error, but I'm unsure what happens if the lambda gets shutdown - I could not see code for dealing with a shutdown message (I dont think it gets a SIGTERM?)

Same question, very similar use case. I initially just put the flush call on a defer from the handler function but that's obviously not ideal.
cc @bmoffatt

I tried something like this today to see if the signal was being sent to the container but it didn't work either:
done := make(chan struct{})
go func() {
  log.Println("Listening for signals...")
  c := make(chan os.Signal, 1)
  signal.Notify(c, os.Interrupt, syscall.SIGTERM)

  <-c
  close(done)
}()

go lambda.Start(HandleRequest)

<-done
log.Println("shutting down")

The lambda still works fine and I can see the "Listening for signals" log entry in CloudWatch but never the "shutting down" one

Today, teardown of functions happens with SIGKILL. We're aware of other asks for a shutdown signal (like SIGTERM), and I've passed this issue along to the product team for reference.

Hello, what is the recommended way to achieve same result? Since os/signal cannot be used to catch SIGKILLThe signals SIGKILL and SIGSTOP may not be caught by a program, and therefore cannot be affected by this package. read more here: https://golang.org/pkg/os/signal

I made few experiments and observe two different behaviors.
First is explained in this thread; there is no way to get SIGTERM and that is true for Lambda functions without extensions. But if you register an external extensions for a Lambda function than functions gets SIGTERM and has 500 ms to do useful work. It is killed after that timeout.
I first observe it when playing with extensions.
Then I repeat the same with the Go code. Make s dummy Go Lambda function:
type MyEvent struct {
	Name string `json:"name"`
}

func HandleRequest(ctx context.Context, name MyEvent) (string, error) {
	return fmt.Sprintf("Hello %s!", name.Name), nil
}

func main() {
	sigs := make(chan os.Signal, 1)
	signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT)
	go func() {
		log.Printf("waiting for the SIGTERM ")
		s := <-sigs
		log.Printf("received signal %s", s)
		time.Sleep(500 * time.Millisecond)
		log.Printf("done")
	}()

	lambda.Start(HandleRequest)
}

There is no way to see received signal log line.
But when I add simple extensions built from this example there is both received and done lines in the log.

https://github.com/aws/aws-lambda-go/releases/tag/v1.34.0 adds an WithEnableSIGTERM option that you can use to... enable SIGTERM, without also having to attach an extension layer.
docs w/ example: https://pkg.go.dev/github.com/aws/aws-lambda-go/lambda#WithEnableSIGTERM

Sorry for using this issue for help but I couldn't think of another place to ask this. Basically I'm not seeing any effect of enabling the option. My code looks like this:
package main

import (
	"context"
	"fmt"
	"log"
	"os"
	"os/signal"
	"syscall"
	"time"

	"github.com/aws/aws-lambda-go/lambda"
)

func HandleRequest(ctx context.Context, name map[string]any) error {
	deadline, _ := ctx.Deadline()
	fmt.Printf("Event: %+v Deadline: %v %s\n", name, deadline, time.Until(deadline))
	<-time.After(time.Until(deadline) + time.Second*3)
	return nil
}

func main() {
	sigs := make(chan os.Signal, 1)
	signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT)
	go func() {
		log.Printf("waiting for the SIGTERM ")
		s := <-sigs
		log.Printf("received signal %s", s)
		time.Sleep(300 * time.Millisecond)
		log.Printf("done")
	}()

	lambda.StartWithOptions(HandleRequest, lambda.WithEnableSIGTERM(func() {
		fmt.Println("Shutdown!")
	}))
}

And my lambda cloudformation looks like this (excluding logs, roles etc):
  AdminUiLambda:
    Type: AWS::Lambda::Function
    DependsOn:
      - AdminUiLambdaLogs
    Properties:
      FunctionName: !Sub ${AWS::StackName}-AdminUiLambda
      PackageType: Zip
      Handler: main
      Runtime: go1.x
      Code: ../lambda/adminui/cmd/pkg.zip
      Role: !GetAtt AdminUiLambdaRole.Arn
      Timeout: 5
      MemorySize: 128
      ReservedConcurrentExecutions: 5

I'm expecting to see either "received signal" or "Shutdown!" but neither show up in logs? Or is this supposes to happen after 60minutes plus? I was expecting the SIGTERM to arrive at the lambda timeout of 5s.
If I remove the blocking <-time.After(time.Until(deadline) + time.Second*3)  the sigterm also never shows up?

I'm expecting to see either "received signal" or "Shutdown!" but neither show up in logs? Or is this supposes to happen after 60minutes plus? I was expecting the SIGTERM to arrive at the lambda timeout of 5s.

If I remove the blocking <-time.After(time.Until(deadline) + time.Second*3) the sigterm also never shows up?

It has already been 4 months and counting. I am extremely extremely keen to hear what the AWS team has to say on this. I have a almost scenario repro code with me that looks likes yours.

@bmoffatt Please consider re-opening this thread. If there are enough folks out there with this bug, it might very well likely be a bug (if it quacks ...)

@ishworg, @advanderveer, you might try changing the runtime from go1.x to provided.al2!
Longer version:
The go1.x runtime has its log sink hooked up in a different way than the newer provided/provided.al2 runtimes. There's an extra process in the middle that stderr/stdout is flowing through, which is resulting in the 500ms before the SIGKILL usually not being enough time for the logs to flush out to CloudWatch.
However, there are other ways to verify that the sigterm handler is actually running. Here's my code, where I use the /tmp directory to persist state across the process restart after timeout.
package main

import (
	"context"
	"fmt"
	"log"
	"os"
	"time"

	"github.com/aws/aws-lambda-go/lambda"
)

func main() {
	lambda.StartWithOptions(
		func(ctx context.Context) error {
			deadline, _ := ctx.Deadline()
			log.Printf("Deadline: %v %s\n", deadline, time.Until(deadline))

			if shutdownTime, err := os.ReadFile("/tmp/shutdown"); err != nil {
				log.Print("no shutdown file found: ", err)
			} else {
				log.Print("previous shutdown recorded at: ", string(shutdownTime))
			}

			<-time.After(time.Until(deadline) + time.Second*3)
			return nil
		},
		lambda.WithEnableSIGTERM(func() {
			log.Print("Shutdown!")
			f, _ := os.Create("/tmp/shutdown")
			defer f.Close()
			fmt.Fprint(f, time.Now())
		}),
	)
}

The logs when the runtime is provided.al2 look like this (notice, the log.Print("Shutdown!") output appears as expected):
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:33.701000 INIT_START Runtime Version: provided:al2.v16	Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:a877059c39f5d33441dc2aac00a8beba450c75fa8d69c4c71e7de2cca4659967
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:33.762000 EXTENSION	Name: GoLangEnableSIGTERM	State: Ready	Events: []
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:33.763000 START RequestId: f3ceb37f-42b3-4c69-9c5f-4ca8fdd4571c Version: $LATEST
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:33.764000 2023/03/11 23:15:33 Deadline: 2023-03-11 23:15:38.763 +0000 UTC 4.998826215s
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:33.764000 2023/03/11 23:15:33 no shutdown file found: open /tmp/shutdown: no such file or directory
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:38.769000 2023/03/11 23:15:38 Shutdown!
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:39.371000 2023-03-11T23:15:39.371Z f3ceb37f-42b3-4c69-9c5f-4ca8fdd4571c Task timed out after 5.61 seconds
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:39.371000 END RequestId: f3ceb37f-42b3-4c69-9c5f-4ca8fdd4571c
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:39.371000 REPORT RequestId: f3ceb37f-42b3-4c69-9c5f-4ca8fdd4571c	Duration: 5607.35 ms	Billed Duration: 5670 ms	Memory Size: 128 MB	Max Memory Used: 19 MB	Init Duration: 62.32 ms
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:45.319000 EXTENSION	Name: GoLangEnableSIGTERM	State: Ready	Events: []
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:45.319000 START RequestId: 8e7009c0-c50d-47b0-b00d-fb6d4ad7be76 Version: $LATEST
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:45.319000 2023/03/11 23:15:45 Deadline: 2023-03-11 23:15:49.484 +0000 UTC 4.164061621s
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:45.339000 2023/03/11 23:15:45 previous shutdown recorded at: 2023-03-11 23:15:38.769601947 +0000 UTC m=+5.039677413
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:49.485000 2023/03/11 23:15:49 Shutdown!
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:50.086000 2023-03-11T23:15:50.086Z 8e7009c0-c50d-47b0-b00d-fb6d4ad7be76 Task timed out after 5.60 seconds
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:50.086000 END RequestId: 8e7009c0-c50d-47b0-b00d-fb6d4ad7be76
2023/03/11/[$LATEST]286174c46b144632896efdf377e22f51 2023-03-11T23:15:50.086000 REPORT RequestId: 8e7009c0-c50d-47b0-b00d-fb6d4ad7be76	Duration: 5602.29 ms	Billed Duration: 5000 ms	Memory Size: 128 MB	Max Memory Used: 13 MB

and the logs then the runtime is go1.x look like this (notice, the log.Printf("Shutdown!") output is unfortunately missing, but the /tmp/shutdown file got written!):
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:48.156000 INIT_START Runtime Version: go:1.v15	Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:cb7b67d90cfa2cac75319b603ddfe27dfd4a3e64d830ef7ba99a87d7d5a55ce1
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:48.253000 EXTENSION	Name: GoLangEnableSIGTERM	State: Ready	Events: []
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:48.254000 START RequestId: 0a5136b7-45b7-4f82-94fe-d4d95de39193 Version: $LATEST
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:48.255000 2023/03/11 23:18:48 Deadline: 2023-03-11 23:18:53.253111529 +0000 UTC 4.997740989s
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:48.255000 2023/03/11 23:18:48 no shutdown file found: open /tmp/shutdown: no such file or directory
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:53.259000 2023-03-11T23:18:53.259Z 0a5136b7-45b7-4f82-94fe-d4d95de39193 Task timed out after 5.00 seconds
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:53.259000 END RequestId: 0a5136b7-45b7-4f82-94fe-d4d95de39193
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:53.259000 REPORT RequestId: 0a5136b7-45b7-4f82-94fe-d4d95de39193	Duration: 5004.38 ms	Billed Duration: 5000 ms	Memory Size: 128 MB	Max Memory Used: 30 MB	Init Duration: 97.82 ms
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:59.647000 EXTENSION	Name: GoLangEnableSIGTERM	State: Ready	Events: []
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:59.647000 START RequestId: 5e7a5516-fcae-45fe-b892-ce88688c97d5 Version: $LATEST
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:59.648000 2023/03/11 23:18:59 Deadline: 2023-03-11 23:19:03.446625591 +0000 UTC 3.79860937s
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:18:59.667000 2023/03/11 23:18:59 previous shutdown recorded at: 2023-03-11 23:18:53.25826704 +0000 UTC m=+5.054825341
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:19:03.448000 2023-03-11T23:19:03.448Z 5e7a5516-fcae-45fe-b892-ce88688c97d5 Task timed out after 5.00 seconds
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:19:03.448000 END RequestId: 5e7a5516-fcae-45fe-b892-ce88688c97d5
2023/03/11/[$LATEST]cf7bd56d43d6416e896feff4fd29f9c4 2023-03-11T23:19:03.448000 REPORT RequestId: 5e7a5516-fcae-45fe-b892-ce88688c97d5	Duration: 5001.83 ms	Billed Duration: 5000 ms	Memory Size: 128 MB	Max Memory Used: 15 MB

@bmoffatt thank you for your prompt response.
I should have mentioned that we are already use provided/al.2 and still seeing this behavior. happy to provide any lambda config or repro code if you want.

For me, changing to the "provided.al2" solved my issue

At first I went through the same issue before realizing that the callback in lambda.WithEnableSIGTERM is non-blocking. So use your own done := make(chan struct{}) to ensure that the function doesn't exit before your callback is done doing whatever it has to do. Then the SIGTERM worked perfectly with provided.al2.


2021.3.x feature invoker runner

When workflow loads we need to set one or two new variables to scope (both of type system.User):
invoker for the user that triggered the workflow. For events that are not triggered by a user (on interval, on timestamp, on request) but as consequence of some scheduled or external event this value is NOT set.
runner for user that executed the workflow. If runAs is configured on the workflow it points to the run-as user. Otherwise it is the same as invoker
This will also be applied to 2021.9.x.

Merged.


Moto doesn't have a version dict

>>> import moto
>>> moto.__version__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__version__'

I ran across this bug when trying to implement some unit tests using boto and moto, and I need to check for a specific version of each before running some of my tests. I need some of the functionality in moto >= 0.3.7. It would be nice to be able to use moto.__version__ to use with LooseVersion or something like that, like you can with other packages, like boto, for example:
def _has_required_boto():
    '''
    Returns True/False boolean depending on if Boto is installed and correct version.
    '''
    if not HAS_BOTO:
        return False
    elif LooseVersion(boto.__version__) < LooseVersion(required_boto_version):
        return False
    else:
        return True

Thanks for opening! I have added this and it should be available for the next version.

Wonderful! Thanks so much for the quick fix. :)


v. 1.4.2. media playback

Environment

Platform: Windows
Architecture: Intel x64
Application version: 1.4.2

Describe the bug
When looking at a channel with embedded media (discord hosted video) - playing the video does not work.
To Reproduce
Steps to reproduce the behavior:

Go to any discord chat
Upload a video to that chat
Try to play back the video just uploaded
The video does buffer, but not play

Additional context
Before upgrading to 1.4.2 from 1.4.1, I deleted these folders:
\AppData\Roaming\WebCord
\AppData\Local\Temp

This sounds like a yet another CSP bug.
As a workaround, try disabling CSP to force the default (provided by Discord website) one. Also, if you want to debug it, open DevTools console and look for errors (enable Developer mode first to have it accesible).

Ok, I've already tested it and I cannot reproduce the issue you're talking about – the video I used plays for me on current WebCord release fine after I uploaded it.
I'll close this issue right now and wait for more information (DevTools errors when trying to play videos etc.). If you provide me that information, I'll reopen this issue and try to reproduce it.

Platform: Windows

Oh, I've noticed you reported a bug on Windows platform. See Support.md, it's not currently officially supported (I may fix bugs that are well described/documented, but don't expect from me I will fix them all like on Linux).
Also, I cannot reproduce this issue on Linux. Personally, I can't see any reason why this issue would be specific to Windows only, but if so, it may be an Electron bug. It may also not work depending on your Windows version – currently WebCord does not fake current Windows version and Discord may block some of the features for an older platform. So please, provide more details about what's failing and I'll be glad to help you if I'm able to.


Update README.md: For Cloud9/Amazon Linux 2 use sudo yum install jq

@toniblyx Can you please add "For Cloud9/Amazon Linux 2 use sudo yum install jq  instead of sudo apt or sudo apt-get?"

This is extracted from the existing README (that is generic and only tries to be specific with some examples):

AWS-CLI can be also installed it using "brew", "apt", "yum" or manually from https://aws.amazon.com/cli/, but detect-secrets has to be installed using pip. You will need to install jq to get the most from Prowler.

Make sure jq is installed (example below with "apt" but use a valid package manager for your OS):

sudo apt install jq

Do you mean to change that part per OS or Linux flavour?

Since you mentioned Cloud9 as an installation environment, I thought it would be good to mention the specific command for Amazon Linux 2

This has been added to the branch 2.5.1 that will be master soon.

Thanks for the feedback @bullittbirant!