Database level activities that can be executed via CMDs

Following "the incident" (cough @DoxasticFox ..) - it would be good if we had a handle on the set of 'admin' level operations that we might be able to enable through our docker entrypoint-commands.
So I'm not sure what is possible - or how limited they might be (maybe there is a command that executes - but also requires the admin to go into AWS and 'fix' a secret or something). Anyhow, would be good to sketch out what is possible. This possibly involves investigating what edgedb CLI itself can do (which I know is a moving target).

rotating edgedb admin passwords
destroy all schemas and start again (we have a 'blank' - but at best this executes Deletes - what about if in dev we want to truly start afresh..)
a mechanism that guards/allows destructive admin activities in production environments - by requiring the executor to produce and extra piece of time limited information that can only be gained from the env..

For those unaware - this is the AWS deployed mechanisms by which we can invoke CMDs
https://github.com/umccr/elsa-data-aws-deploy/blob/main/elsa-data-cmd.sh

https://github.com/edgedb/edgedb-cli/issues/839

Thinking it would be fantastic for the CMD to be able to restart the Fargate service (i.e. pick up new config changes, new docker images etc)

Two CMDs (would need corresponding feature in Elsa) might be 'pause for maintenance' and 'restart after maintenance' - that maybe use SSM params or something. Anyone hitting the site would get a maintenace page - which would then give us space to do a CMD for db-migration (for instance).
Otherwise users might be using the site whilst the migration is happening

We are looking at re-orging the AWS deploy infrastructure - stateless stacks v stateful stacks so best holding off on this for the moment


Wrapping React component in withRouter causes graphql query fail on initial page load

Bug report
Describe the bug
So I passs query parameters to a component (page), which I access as props const { id, onToken } = this.props.router.query; by wrapping the called component in a withRouter:
import { withRouter } from 'next/router'
export default withRouter(withApollo(Order));

But wrapping withRouter around my component causes grqphql query to fail on initial page load, and then to succeed.
To Reproduce
const SINGLE_ORDER_QUERY = gql`
  query SINGLE_ORDER_QUERY($id: ID!) {
    order(id: $id) {
      id
      charge
      total
      createdAt
      user {
        id
      }
      items {
        id
        title
        description
        mainDescription
        price
        image
        quantity
        itemid
      }
    }
  }
`;

class Order extends React.Component {
  render() {
    return (
      <Query query={SINGLE_ORDER_QUERY} variables={{ id: id }}>

Expected behavior
Without the component wrapped in withRouter the component works correctly without any generated errors.
Screenshots

System information

OS: Windows 10 Pro
next: "^7.0.2"
next-with-apollo: "^3.1.3"
react: "^16.5.2"

Additional Info
The calling component creates the parameterised query as follows:
    Router.push({
      pathname: '/order',
      query: { id: order.data.createOrder.id, onToken: true },
    });

According to the docs for next-with-apollo, you should wrap your _app, not individual pages, with the withApollo HOC. That may be the root of your problem.

Where's that withApollo stuff from ?

From the original issue:

next-with-apollo: "^3.1.3"

Try to output the router information before running the apollo stuff, you might find out if the variables for apollo got the right variables or not.

Refactoring code resolved the issue.


docs: Add documentation about host cgroup management

Document how cgroups are done today and what is expected
for the upcoming SandboxCgroupOnly option.
Prior cgroup documentation are no longer accurate. Removing the cgroup
discussion from the cpu sizing discussion. Updating the
cpu-constraints.md file name to reflect this.
Fixes: #542
Signed-off-by: Eric Ernst<EMAIL_ADDRESS>Signed-off-by: Jose Carlos Venegas Munoz<EMAIL_ADDRESS>

Hey Carlos, as a first step, I think we should probably combine cpu-constraints.md with your host-cgroups.md, probably into a document named something like, constraining-kata-on-host.md.

@jodh-intel @egernst @chavafg @devimc thanks for the suggestions - document update.

@jodh-intel I updated the commit based on your valuable feedback. PTAL?

/test

/test
PTAL - updated based on feedback


 You must be very unhappy with yourself!
Quote from your reply on comment.
"I can only urge you to continue learning about computation and to think about problems from first principles."
Btw, it turns out that there are faster implementation than yours, and probably people spent less narcissistic and self-pity blog entries on the issues.
https://github.com/monochromegane/the_platinum_searcher

I made the suggestion below, but your reply was one of a psychopath!
hi, thanks for your work on ag! Really impressive tool. Would have four suggestions:
-> one hint for speedup: did you think/try asynchronous io? Under certain conditions usync io on several files can be much faster on one thread than sync io on multiple threads (http://www.kegel.com/c10k.html.... I tried to search for random regex in /usr which is on o very fast SSD on a 8 core AMD machine. The CPU usage is 300% which means less than half of computing power is used. Strange that even with hot cache, this does not strange. I assume that on slower disks lot of time would be spent on IO. If all threads are blocked on IO, which is very likely, nobody is working.
-> doing sthg. like ag "a.*r.*b.n." will do the fuzzy find. Suggestion: a flag (-y is not taken) that will automatically convert ag -y arbn to the above
-> implement a new mode, where you would internally cache the buffers, and doo interactive fuzzy find az FZF (https://github.com/junegunn/fz...
-> implement a server mode where you would cache the buffers and do like above but search for strings comming on a socket or pipe. This would be very powerful to implement plugins like FZF, but obviously you would do much more than FZF


ogg/vorbis playback fails due to invalid modulo if source_packet.frames() returns 0

Songbird version: 0.4.0
Rust version (rustc -V): rustc 1.76.0 (07dca489a 2024-02-04)
Serenity/Twilight version: serenity 0.12
Output of ffmpeg -version, yt-dlp --version (if relevant): Not relevant
Description: Trying to play back ogg/vorbis files fails with the following panic:
[2024-02-20 02:13:21] [songbird::driver::tasks::events] [DEBUG] Changing state for track 0 of 1: Ready(Preparing)
[2024-02-20 02:13:21] [songbird::driver::tasks::events] [DEBUG] Changing state for track 0 of 1: Volume(1.1357472)
[2024-02-20 02:13:21] [songbird::driver::tasks::events] [INFO] Adding event to track 0.
[2024-02-20 02:13:21] [songbird::events::store] [INFO] Firing Preparing for [0]
[2024-02-20 02:13:21] [symphonia_core::probe] [DEBUG] found a possible format marker within [4f, 67, 67, 53, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 51, cf] @ 0+2 bytes.
[2024-02-20 02:13:21] [symphonia_core::probe] [INFO] found the format marker [4f, 67, 67, 53] @ 0+2 bytes.
[2024-02-20 02:13:21] [symphonia_format_ogg::page] [DEBUG] grow page buffer to 8192 bytes
[2024-02-20 02:13:21] [symphonia_format_ogg::demuxer] [INFO] starting new physical stream
[2024-02-20 02:13:21] [symphonia_format_ogg::demuxer] [INFO] selected vorbis mapper for stream with serial=0x444ecf51
[2024-02-20 02:13:21] [symphonia_format_ogg::page] [DEBUG] grow page buffer to 16384 bytes
[2024-02-20 02:13:21] [symphonia_codec_vorbis] [DEBUG] vorbis: leftover bits in setup head extra data
thread '<unnamed>' panicked at crates/songbird/src/driver/tasks/mixer/mix_logic.rs:164:17:
attempt to calculate the remainder with a divisor of zero
stack backtrace:
[2024-02-20 02:13:21] [songbird::driver::tasks::events] [DEBUG] Changing state for track 0 of 1: Ready(Playable)
   0: rust_begin_unwind
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5
   1: core::panicking::panic_fmt
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:72:14
   2: core::panicking::panic
             at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:144:5
   3: songbird::driver::tasks::mixer::mix_logic::mix_symph_indiv
             at ./crates/songbird/src/driver/tasks/mixer/mix_logic.rs:164:17
   4: songbird::driver::tasks::mixer::Mixer::mix_tracks
             at ./crates/songbird/src/driver/tasks/mixer/mod.rs:818:38
   5: songbird::driver::tasks::mixer::Mixer::mix_and_build_packet
             at ./crates/songbird/src/driver/tasks/mixer/mod.rs:526:23
   6: songbird::driver::scheduler::live::Live::run_once
             at ./crates/songbird/src/driver/scheduler/live.rs:217:19
   7: songbird::driver::scheduler::live::Live::run
             at ./crates/songbird/src/driver/scheduler/live.rs:188:15
   8: songbird::driver::scheduler::live::Live::spawn::{{closure}}
             at ./crates/songbird/src/driver/scheduler/live.rs:630:13
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Steps to reproduce:
Used roughly the following setup:
        if let Some(manager) = manager { // Arc<Songbird>
            if let Some(handler_lock) = manager.get(self.guild_id) {
                let input: Input = songbird::input::File::new(file_path.clone()).into(); // An .ogg file
                let mut handler = handler_lock.lock().await;
                let handle = handler.play_input(input);
            }
        }

Interestingly, adding a simple if to avoid the modulo by 0 here makes everything work just fine, as only the first packet seems to have a 0 frames.
ffprobe has the following to say about the ogg file:
  Duration: 00:00:15.02, start: 0.000000, bitrate: 73 kb/s
    Stream #0:0: Audio: vorbis, 48000 Hz, mono, fltp, 80 kb/s
    Metadata:
      ENCODER         : Lavc56.1.100 libvorbis
      COMPATIBLE_BRANDS: isomiso2mp41
      MINOR_VERSION   : 512
      MAJOR_BRAND     : isom

Nice find! I don't know too much about the Vorbis format, but I think skipping past 0-frame packets is probably the right call assuming the spec doesn't assign any other meaning.


unable to load module from registry

Found a bug? Maybe our Slack Community can help.

Describe the Bug
Unable to load module from terraform registry.
Expected Behavior
User should be able to load module from the terraform registry as instructed in the readme.
Steps to Reproduce
Steps to reproduce the behavior:

git clone https://github.com/cloudposse/terraform-aws-msk-apache-kafka-cluster
cd examples/complete
Edit 'main.tf' -> 'module "kafka"' on line 33 - update source to download from terraform - see below.

  # source = "../../"
  source = "cloudposse/apache-kafka-cluster/aws"
  # Cloud Posse recommends pinning every module to a specific version
  version = "0.6.3"

Run terraform init
See error

Error: Module not found
│
│ Module "kafka" (from main.tf:33) cannot be found in the module registry at registry.terraform.io.

Environment (please complete the following information):
Anything that will help us triage the bug will help. Here are some ideas:

OS: [OSX]

Additional Context
I wanted to evaluate this module for my internal use case, however the module runs into an issue while downloading from terraform registry. https://registry.terraform.io/modules/cloudposse/msk-apache-kafka-cluster/aws/latest

For now, I am using with the below workaround:
  source = "github.com/cloudposse/terraform-aws-msk-apache-kafka-cluster.git?ref=0.6.3"

I just ran into this issue myself, however the name of the module in the registry is different from what is specified in the snippet:
the name in the snippet is "cloudposse/apache-kafka-cluster/aws" whereas the name of the module in the registry (and this repo) is "msk-apache-kafka-cluster"
link to module in registry:
https://registry.terraform.io/modules/cloudposse/msk-apache-kafka-cluster/aws/latest

Thanks, this helps.

According to this https://registry.terraform.io/modules/cloudposse/msk-apache-kafka-cluster/aws/latest
It looks like you need to specify the following
module "msk_apache_kafka_cluster" {
  source  = "cloudposse/msk-apache-kafka-cluster/aws"
  version = "0.6.4"
  # insert the 19 required variables here
}


[BUG] Import Mysql Library

Description of the Problem
When trying to run the script mqtt_insert_mysql.py, I encounter the following import error:
/bin/python3 /home/davi/mqttapi/mqttapi/examples/mqtt_insert_mysql.py
Traceback (most recent call last):
  File "/home/davi/mqttapi/mqttapi/examples/mqtt_insert_mysql.py", line 2, in <module>
    from mqttapi import MQTTCommunicator, MySQLManipulator
ImportError: cannot import name 'MySQLManipulator' from 'mqttapi' (/home/davi/.local/lib/python3.11/site-packages/mqttapi/__init__.py)

Steps to Reproduce

Run the Python script located at ./mqttapi/examples/mqtt_insert_mysql.py.
Observe the import error.

Expected Behavior
The script should execute without errors, and the classes MQTTCommunicator and MySQLManipulator should be imported correctly from the mqttapi module.

The import error occurred because the pip library was not updated. The name of the library was previously different, currently
is MySQLManipulator, inside the MysqlBD file
The bug was fixed with version 0.4.4


⚠ Bofrost.nl has degraded performance

In d1e25b1, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 1294 ms

Resolved: Bofrost.nl performance has improved in b4c4084.


[Dynamic Region] When there's heavy write traffic, restarting one TiKV would make this TiKV's raft lag never catch up

Bug Report

What version of TiKV are you using?

nightly #5a2ff323d6fae82c624ad802e8100d3154d01ba1
What operating system and CPU are you using?

Steps to reproduce

In a 4 tikv cluster, have some heavy write for more than 1 hour and then restart one of the TiKV.
What did you expect?
The restarted TiKV would catch up and work normally
What did happened?
The raft log gap is increasing overtime. Even the traffic is stopped, it takes more than 3.5 hours to catch up.

With default raft-engine.recovery-threads, it takes more than 1330seconds to recover the raft log.
[2023/03/28 16:11:43.549 +00:00] [INFO] [engine.rs:91] ["Recovering raft logs takes 1338.018227558s"]
And it takes 23 minutes for the TiKV to be ready to serve.
[2023/03/28 15:49:24.960 +00:00] [INFO] [lib.rs:86] ["Welcome to TiKV"]
[2023/03/28 15:49:24.968 +00:00] [INFO] [lib.rs:91] ["Release Version:   7.1.0-alpha"]
[2023/03/28 15:49:24.968 +00:00] [INFO] [lib.rs:91] ["Edition:           Community"]
....
[2023/03/28 16:13:28.774 +00:00] [INFO] [server.rs:327] ["TiKV is ready to serve"]

dup with #14481


[C++] Lost several conjunctions in SimplifyWithGuarantee

Describe the bug, including details regarding any error messages, version, and platform.
The codes below seems to have forgotten to handle the conjunctions of AND and OR.
Forget to handle AND ?
https://github.com/apache/arrow/blob/5718a2862b4254d8bf938912d8958837ac7313a5/cpp/src/arrow/compute/expression.cc#L914
Forget to handle AND an OR ?
https://github.com/apache/arrow/blob/5718a2862b4254d8bf938912d8958837ac7313a5/cpp/src/arrow/compute/expression.cc#L877-L903
Component(s)
C++

In SQL scenarios, Kleene-related logical operators are commonly used. Optimizing for Kleene operators is sufficient in most cases, and it may not be necessary to optimize for non-Kleene operators. This is not a universally applicable scenario within the expression system.


Golems breaking Greatwood results in no drops

I'm playing Enigmatica 2 Expert and the golems when breaking Greatwood trees don't drop any logs, only the leaf drops work...

pretty sure this is due to Greatwood having Iron tier harvest requirement and the golems probably not having a harvest level, any way to work around this?

What modpack are you playing? Greatwood does not normally have an iron mining tier.


Create autocomment-pr-merge.yml

Related Issue
Fixes #225
Description
This feature aims to solve the problem of inconsistent and delayed communication following the merging of PRs. By automating the commenting process, it ensures that contributors receive timely feedback and acknowledgments. It also reduces the administrative burden on maintainers, allowing them to focus more on code reviews and other critical tasks.
Type of PR

[ ] Bug fix
[X] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Checklist:

[X] I have performed a self-review of my code
[X] I have read and followed the Contribution Guidelines.
[X] I have tested the changes thoroughly before submitting this pull request.
[X] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[ ] I have commented my code, particularly in hard-to-understand areas.

@Durgesh-Vaigandla can you please add 'gssoc' and the relevant level labels

@Asymtode712 Getting some Issue could you solve that.?

@Durgesh-Vaigandla what is it?

@Asymtode712

@Durgesh-Vaigandla ok so this is happening because GITHUB_TOKEN doen't have enough permissions, to correct it you must create a PAT (Personnal Access Token) and assign it to a new environment secret which can be named as PAT_GITHUB and then replace the instances of GITHUB_TOKEN with PAT_GITHUB int this code

@Durgesh-Vaigandla this can be done by the owner only as it is caused from your environment

@Asymtode712 I tried that but didn't worked out could send me some reference article or video

Firstly check this:

Navigate to Your Repository:

Go to the GitHub website and navigate to the repository where you want to check the settings.

Access Repository Settings:

Click on the Settings tab in your repository. This is typically found on the right side of the repository page under the repository name.

Go to Actions Settings:

In the left sidebar, scroll down until you find the Actions section and click on it.

Check Actions Permissions:

In the Actions settings, you will see the Actions permissions section. Ensure that Allow all actions and reusable workflows is selected. If there are restrictions, you might need to adjust them to allow the necessary actions for your workflow.

@Durgesh-Vaigandla Ensure this :

@Asymtode712 that option is not enabled for me the repo is in organisation not in a personal account

@Durgesh-Vaigandla please ask the owner to enable it as it's the major breaking point

@Asymtode712 I'm one of the super Admin I've full rights to control all the things but the wasn't enabled

so have to enabled it now?

@Asymtode712 But how.!

@Durgesh-Vaigandla Bro!!!!! By default it is set to 'Read repository contents and packages permissions' you have to change it to 'Read and write permissions'

Firstly check this:

Navigate to Your Repository:

Go to the GitHub website and navigate to the repository where you want to check the settings.

Access Repository Settings:

Click on the Settings tab in your repository. This is typically found on the right side of the repository page under the repository name.

Go to Actions Settings:

In the left sidebar, scroll down until you find the Actions section and click on it.

Check Actions Permissions:

In the Actions settings, you will see the Actions permissions section. Ensure that Allow all actions and reusable workflows is selected. If there are restrictions, you might need to adjust them to allow the necessary actions for your workflow.

when you follow this steps till the 3rd step just scroll down and you will find this option

@Asymtode712 I've already know that man but the option was not 🚫 enabling. Showing like this 🚫

can you please send me a snippet of it

see it's not enabled

@Durgesh-Vaigandla ok just wait

@Durgesh-Vaigandla Have you closed this??

@Durgesh-Vaigandla I had committed some updations to the file

should i make another pr?

@Asymtode712 Just wait some time our backend team said that we'll fix this. So please wait I'll intimate you after fixing.

@Durgesh-Vaigandla Do ping me as my other PRs are also on hold and i would have to make changes in them accordingly

@Durgesh-Vaigandla please add 'leve1' and 'gssoc' labels to this PR


Fix filtering cannot use relational reflection fields

Closed https://github.com/strawberry-graphql/strawberry-graphql-django/issues/84

Thanks for the contribution :)


Update database to incorporate new features

[x] Update schema SQL
[x] Update documentation with new schema
[x] Update test data SQL
[ ] Create db functions if required

Discuss the use of global / group specific roles. Maybe only allow the roles "user" and "super admin" globally to make life easier.

New view on pg_roles table to be created in order to fetch the user group of the user

Some functions still need to be implemented:

getAllGroups
getUserGroups
getPrivilegesForGroup
setUser


Remove unused association

These associations are shadowed by delegations defined few lines
below

@miq-bot add_label refactoring
@miq-bot assign @agrare


Fixes #1751 Smart indent does not work in REPL

Fixes #1751 Smart indent does not work in REPL
Removes old compatibility code
Removes duplicate REPLs opening during tests and tries harder to close the one we just finished using.

Just hit merge if there are no concerns - I'll be out until tomorrow.


Add rubocop-rspec

I mentioned this in the mutant slack chat a few days back.  I'll lookup and paste the relevant discussion in a comment on this issue.  At some point I would like to look into the following regarding rubocop-rspec:
1. How much time would adding rubocop-rspec add to rubocop's average runtime and therefore devtools runtime as a whole
Intuitively, it doesn't seem like the 8 cops that rubocop-rspec provides would significantly impact the runtime on top of the ~240 cops rubocop provides. With that said, @mbj has said before he doesn't want to slow down devtools much more until the everything is parallelized, so benchmarking the impact of adding rubocop-rspec is probably still important.
2. What the false positive rate is for each cops that it adds
Some of the cops might yield false positives regularly enough that the cops end up not being worth it. If only a few of the cops end up being worth it when accounting for false positives then the gem probably shouldn't be added at all.

Relevant discussion:

backus: Would be an interesting addition to devtools https://github.com/nevir/rubocop-rspec

GitHub
nevir/rubocop-rspec
rubocop-rspec - Code style checking for RSpec files

mbj: @backus: We already run rubocop on **/*.rb. *_spec.rb files inside spec are included.
mbj: @backus: Unless rubocop-rspec brings rspec specific cops there is no win.
backus: It does
backus: Things like making sure
module Foo
  RSpec.describe(Bar)
end

is the file foo/bar_spec.rb
mbj: I do not agree at all to this design.
mbj: Does it enforce the module Foo part?
backus: no I think it enforces one of a few options
backus: https://github.com/nevir/rubocop-rspec/blob/master/lib/rubocop/cop/rspec/file_path.rb#L6-L16
backus: other cops: https://github.com/nevir/rubocop-rspec/tree/master/lib/rubocop/cop/rspec
mbj: k, if its configuralbe it makes sense to have it.
mbj: I wounder if we need parallelism to reduce the amount of sequential work in devtools.
backus: other nice things like enforcing described_class over duplication when possible
mbj: I see how rubocop-rspec plugs into rubocop
mbj: But mid-term devtools will not scale anymore.
mbj: @backus: I'm happy to accept PR / issues for this addition.
mbj: The default config in the PR should make sure it fits the conventions we have on the existing tools like mutant.
mbj: (likely there are some violations in mutant itself, that need to be fixed)
mbj: Also there are some cases the "dump" tool will return false positives, so each cop must be weighted for false positive rate.
mbj: Example is that the tool will likely not implement a scope resolution, so it might flag something as "should be replaced with decribed_class where this will not work here". (edited)
mbj: @backus: This one for example will likely be a false positive: https://github.com/mbj/mutant/commit/3874b3f11a5e77e60a34300362de36600438b8f8#diff-2769816d16e2f82a90d1d97c1b1b0c7eR5 (edited)
mbj: described_class is not available inside the block, curious if rspec-rubocop is sensitive to that scoping.
mbj: Static scope analysis (apart lvars) is close to impossible in ruby.

Intuitively, it doesn't seem like the 8 cops that rubocop-rspec provides would significantly impact the runtime on top of the ~240 cops rubocop provides. With that said, @mbj has said before he doesn't want to slow down devtools much more until the everything is parallelized, so benchmarking the impact of adding rubocop-rspec is probably still important.

I think that 8 cops are not that relevant. Adding rubocop-rspec is more an addition to the existing tool rubocop.

Quick update: the DescribedClass cop now should not descend into any scope changing blocks as mentioned above.


Add plan summary in bottom of sidebar

It would be helpful to see billing plan summary information at the bottom of the sidebar.

@jamilbk can you elaborate a bit more on this? Why somebody would want to see the plan all the time? What that summary should contain? Which customer requested that?


Highlight lualine component

lualine component would look better with an option like "colored" which will reuse the highlight from aerial

Added colorizing of lualine icons. This can be disabled by setting the colored option to false.

Thanks!


Executable name for xfce4

xfce4-terminal is the correct name for the terminal that comes with xfce4, I believe. At least, it fixes the error I got.

Before this fix, what was the error you were receiving?

Ignore my last comment. I think we should be fine landing this. I will land this within the next week.

This has been landed/released in 1.5.0. Thanks for the PR!


error when doing java -jar GeyserConnect.jar

root ➜ /home/user/Downloads $ java -jar GeyserConnect.jar
no main manifest attribute, in GeyserConnect.jar
root ➜ /home/user/Downloads $

You don't run the jar directly, it's an extension to be used with a Geyser installation. See the wiki for a step-by-step guide: https://geysermc.org/wiki/other/geyserconnect
If you need help, feel free to ask us on Discord. Thank you!


test in ios 7.0 and android 4.4

kitkat issue: https://saucelabs.com/beta/tests/d0a76861725249f98c4d3abcb77ea539/logs


Requirements: Update httpx to ^0.25.0

What kind of change does this PR introduce?
Bug fix, feature, docs update, ...
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Deeply sorry for notifying you all. That's a hard patch.


chore(docs): update README examples to consolidate outputs into expandable details

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 82.11%. Comparing base (422f68d) to head (59b6d54).
Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #48   +/-   ##
=======================================
  Coverage   82.11%   82.11%
=======================================
  Files          17       17
  Lines         425      425
  Branches       70       76    +6
=======================================
  Hits          349      349
  Misses         76       76

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Restore Database source name throws exception

Azure Data Studio Version: master

Steps to Reproduce:

Try to restore a file
Click the Database source downdown

Expected: See a list of databases on the server
Actual: Error message shown in dev log

Uncaught TypeError: Cannot read property 'text' of undefined
    at SelectBoxList.setWidthControlElement (workbench.main.js:68024)
    at SelectBoxList.layoutSelectDropDown (workbench.main.js:67908)
    at SelectBoxList.renderSelectDropDown (workbench.main.js:67841)
    at Object.render (workbench.main.js:67801)
    at ContextView.show (workbench.main.js:36495)
    at Proxy.showContextView (workbench.main.js:102834)
    at SelectBoxList.showSelectDropDown (workbench.main.js:67799)
    at HTMLSelectElement.toDispose.push.dom.addDisposableListener (workbench.main.js:67612)

This seems to only happen if there are no user databases.  Apparently we're filtering out system databases, which I'm not sure if that is a change in behavior.

@kburtram while trying to repro this I realized that drop down in restore 'from' will only show if the backup of some db has already been taken (both in SSMS and ADS) even if no user db is present. Did you notice the issue with or without backup?
I will look at the console error anyways. Also noticed another thing here that - master db is not showing in dropdown even if its been backed up

Since this is same behavior as SSMS... closing this based on our discussion.


Not getting valid forecasts.

I am not sure if this has anything to do with the emacs package or forecast.io, but every time I run forecast, I receive a forecast that does not even come close to reflecting upon my geographical area. I am walking around in shorts and a t shirt on a beautiful sunny day, and it says that it is below 15 degrees Fahrenheit with a chance of snow flurries later in the day.
I have checked my GPS coordinates and they are correct...
...a lil help, please...

I pulled a good one on that file, my ADHD must have been on overdrive. I discovered that I made the lovely newb mistake of forgetting to add a negative (-) to one of the GPS numbers. Once it was added, it worked perfectly. Sorry I even opened up this issue, the package works like a charm. Thanks.

Hi, I'm happy that it works for you now, you're welcome.  Everybody makes such mistakes once in a while, no problem :smile:


Use set of strings for tags instead of one string

Fixes #310 (Replaces #311 PR)

please fix the typo in 2nd commit s/Enty/Entry

@jimirocks typo in commit message fixed

Coverage decreased (-0.02%) to 81.629% when pulling a00a28a735f9d818645188e5dcde18a8a7734c75 on tags into 1c8b21509e9b5a68a6c08988181bf82bc5294487 on 2.0.0-RC.


run.sh doesn't seem to download appion-protomo

Hi,
I successfully installed docker and then tried to run the run.sh script, but I found the final disk usage to be much lower than the ~ 1GB expected of appion + protomo. I've copied the shell output below. My OS is Ubuntu 16.04.5 LTS, 4.4.0-131-generic.
proto:~/linux> git clone http://github.com/nysbc/appion-protomo
Cloning into 'appion-protomo'...
remote: Counting objects: 1485, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 1485 (delta 26), reused 0 (delta 0), pack-reused 1443
Receiving objects: 100% (1485/1485), 432.06 KiB | 256.00 KiB/s, done.
Resolving deltas: 100% (955/955), done.
Checking connectivity... done.
proto:~/linux> cd appion-protomo
proto:~/linux/appion-protomo> ./run.sh
Using existing mariadb-database volume.
Done.
dce657b920b01b99694e42c104581a85f95782646b132dc5c2d326f203af5a82
Waiting for database...
Done.
proto:~/linux/appion-protomo> du -h .
532K	./sql
4.0K	./emg/data/appion
8.0K	./emg/data
12K	./emg
8.0K	./.git/logs/refs/remotes/origin
12K	./.git/logs/refs/remotes
8.0K	./.git/logs/refs/heads
24K	./.git/logs/refs
32K	./.git/logs
8.0K	./.git/info
4.0K	./.git/objects/info
484K	./.git/objects/pack
492K	./.git/objects
8.0K	./.git/refs/remotes/origin
12K	./.git/refs/remotes
4.0K	./.git/refs/tags
8.0K	./.git/refs/heads
28K	./.git/refs
44K	./.git/hooks
4.0K	./.git/branches
632K	./.git
124K	./config
1.4M	.
proto:~/linux/appion-protomo>

I also executed the run.sh script from a bash shell and saw a different error. The script didn't download and install appion-protomo under bash either:
dbsganl@proto:~/appion-protomo$ ./run.sh
Using existing mariadb-database volume.
Done.
ebba55fae3b5e9a6afd6ba33b0081e5e9b5a0cb52fef11c378b1b2adc0547d77
docker: Error response from daemon: driver failed programming external connectivity on endpoint romantic_saha (e627faea179a807fd65a49d66b0ad918ee2beef3bec762a1ba80a0b198c0f89a): Bind for <IP_ADDRESS>:5901 failed: port is already allocated.
Waiting for database...
Done.

Thanks
-Lu

Just tried the run.sh command again, after a reboot. The command executed without the error message. I don't know what changed, aside from an updated docker-ce in my apt repository.

Hi Lu,
Glad you got it working! I added the note that you may need to update docker before installing.
Thank you!
Best,
-Alex


Revert "rotors_simulator: 2.2.1-0 in 'indigo/distribution.yaml' [bloom]"

Reverts ros/rosdistro#19665
This failed to build on indigo due to what looks like a missing dependency
http://build.ros.org/job/Ibin_uT64__rotors_gazebo_plugins__ubuntu_trusty_amd64__binary/63/console
16:34:18 -- Using Python nosetests: /usr/bin/nosetests-2.7
16:34:18 -- catkin 0.6.19
16:34:18 CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
16:34:18   Could not find a package configuration file provided by "gazebo_plugins"
16:34:18   with any of the following names:
16:34:18
16:34:18     gazebo_pluginsConfig.cmake
16:34:18     gazebo_plugins-config.cmake
16:34:18
16:34:18   Add the installation prefix of "gazebo_plugins" to CMAKE_PREFIX_PATH or set
16:34:18   "gazebo_plugins_DIR" to a directory containing one of the above files.  If
16:34:18   "gazebo_plugins" provides a separate development package or SDK, be sure it
16:34:18   has been installed.
16:34:18 Call Stack (most recent call first):
16:34:18   CMakeLists.txt:98 (find_package)
16:34:18
16:34:18

I'm going to roll this release back to prepare for a sync. If there's a new fix we can merge it in the testing period.

@tfoote FYI sorry didn't see your comment here - should be fixed in PR https://github.com/ros/rosdistro/pull/19695
builds in prerelease testing.


feat: Add measurement widget

Is it ready for review? =)

Not yet, I'll let you know when it's ready

This is the current status of the measurement widget, from what I've seen in https://github.com/pyvista/pyvista/pull/3718/files , the widget is supposed to be snapping to the points of the mesh, but it is not working from PyVista side.
Also, I'm using calls to VTK directly to turn the widget on and off, since using the PyVista expected method for this seems to be interfering with the picker.

I managed to fix the snapping issue, I had to do way more changes for this to work than I expected.


Support calling and being called by Python and HOC functions, etc

The core idea here is that we want HOC/Python to be able to call MATLAB routines... there are also a number of functions (e.g. FInitializeHandler see #11) that can invoke callbacks, and we'd like to be able to have those call NEURON as well.
A way to make this work: we can define a paring between a name and a C function pointer in the NEURON stack machine. This would add entries into the NEURON name space, but it would be mostly fine if they had some elaborate autogenerated name, say neuron_toolbox_5243_64AE_5424 where the last bit is some kind of UUID.
Once they're known to the stack machine, they can be called by HOC.
For a working example, see https://github.com/mcdougallab/neuron-c-api-demos/blob/main/function-callbacks-nrn9/function-callbacks.cpp
The key parts are:
void test_callback(void) {
    cout << "Hello from C++" << endl;
    // must call hoc_ret... to tell the stack we're returning a value
    hoc_ret();
    // return value must be pushed onto the stack
    hoc_pushx(42);
}

...

    hoc_oc("{value=test_callback()}");
    hoc_oc("print \"received value: \", value");

If it turns out that we couldn't generate a new C++ function pointer for each MATLAB function we'd like to call, we could have one access point (say a function called neuron_toolbox_interface) that takes a parameter indicating which function is to be called (and possibly other parameters for the other functions... )

To do:

hoc install nrnmatlab
nrnmatlab mex evals a matlab function
return 0 or 1

We want to be able to run in HOC: nrnmatlab("matlab code"). This just returns 0 or 1; there is no obvious way to get return values back from matlab.
Try on linux with no-desktop version to run in process.


Exception video unavailable

:exclamation:  DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE :exclamation:
lack of information will lead to closure of the issue

Describe the bug
A clear and concise description of what the bug is.
"error": "Video unavailable or not found

code that was used that resulted in the bug
from pytubefix import YouTube

# put your code here
streams = yt.streams.filter(
                res=self.quality,
                file_extension=self.file_type,
                progressive=self.pros,
            )
            stream_list = []

            if streams is None:
                return None

            for stream in streams:
                # download_link = stream.url
                # r = requests.get(download_link, allow_redirects=True)
                # open(stream.default_filename, "wb").write(r.content)
                stream_list.append(
                    {
                        "filename": stream.default_filename,
                        "resolution": f"{stream.width} X {stream.height}",
                        "quality": stream.resolution,
                        "filesize": stream.filesize_mb,
                        "mime_type": stream.mime_type,
                        "file_ext": stream.subtype,
                        "thumbnail": self.thumbnail,
                        "url": stream.url,
                    }
                )

            return stream_list
        except VideoUnavailable:
            err_msg = {"error": "Video unavailable or not found, try again"}
            return err_msg
        except URLError:
            err_msg = {"error": "Network error try again"}
            return err_msg

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: [Your Operating System and Version]
Python Version [x.y.z]
Pytubefix Version [x.y.z]

Additional context
Add any other context about the problem here.

The error appears to be HTTP 400 reported by your proxy/app. The error does not appear to be from YouTube.
Note: my code can download the URL. That is a strong indicator that the problem is with your design and not with PyTubeFix.

The error appears to be HTTP 400 reported by your proxy/app. The error does not appear to be from YouTube.
Note: my code can download the URL. That is a strong indicator that the problem is with your design and not with PyTubeFix.

what about now?

I'm facing the same issue.

Same problem here, but working locally and not on the server.

mine ain't even working on both!!

I have same issue

File "C:\Users\USER\Desktop\Fakson_web\Programs\lessons\React\yt_downloader\venv\Lib\site-packages\pytubefix_main_.py", line 629, in streams
self.check_availability()
File "C:\Users\USER\Desktop\Fakson_web\Programs\lessons\React\yt_downloader\venv\Lib\site-packages\pytubefix_main_.py", line 335, in check_availability
raise exceptions.VideoUnavailable(video_id=self.video_id)
pytubefix.exceptions.VideoUnavailable: b0D0SG8yzCE is unavailable

The issue is still not fixed yet

iam facing the same issue when trying to download a playlist which contains 5 videos, it returned all video urls  bu't can't download 3  of them returns it's unavailable and they already available if you click the urls of these videos you will see they are available.
playlist urls : https://youtube.com/playlist?list=PLXpRJ1wzKbm5Me8WTtEhYCSew6uAb2NdX&si=iDl0Ox9MJJU5wlOY
one of videos can't be downloaded cause it's unavialable video url :  https://www.youtube.com/watch?v=ow9_519_xVQ&list=PLXpRJ1wzKbm5Me8WTtEhYCSew6uAb2NdX&index=2


GDBackend->fittedResize() duplicate of GDBackend->resizeRatio() ?

To me it seems as if GDBackend->fittedResize() (source) is intended for the same thing as GDBackend->resizeRatio() (source) but does it less efficient.
Therefor I would like to depricate this method and until removal just let it act as proxy to GDBackend->resizeRatio()

todo: Remove fittedResize() as it's not an Image_Backend implementor, and isn't used anywhere.

super easy :)

This has been resolved as part of the work to switch to intervention/image


Key Search (Global)

As a user I would like to input a keyword and search the entire dataset so that I can find relevant records (Global search)

Bug: Search does not include Room Name

Further testing indicates this working.

not able to save any key records (on hitting create button nothing happens)...502 error in firebug

@dpdavids would you give this a shot and let me know if it's fixed.


Favour chain Id over genesis state hash to add network uniqueness to the staking ledgers persistence

Currently we append the genesis state hash to uniquely identify the staking ledgers but better would be to use the current chainId.

Did the chainId change upon hard fork?

Did the chainId change upon hard fork?

Yes, it's generated from the networks genesis constants and a timestamp.
Also, I believe that's how MinaExplorer and the Mina Payout Scripts handle it

Related to #1611


⚠ Bofrost.lu has degraded performance

In 7775f7f, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1592 ms

Resolved: Bofrost.lu performance has improved in 3669150 after 7 minutes.


Typographer converts quotes incorrectly between punctuation

Typographer incorrectly renders input including quotes between other punctuation (including other quotes), such as
The dog---"'man's' best friend"

which incorrectly yields
The dog—"‘man’s’ best friend"

without converting the straight quotes to double quotes.  Single quotes are also converted incorrectly in similar circumstances, for instance the UK version of the above:
The dog---'"man's" best friend'

yields
The dog—’“man’s” best friend’

where the leading single quote faces the wrong way.  (Almost invisible in GitHub's font, unfortunately.)
Adding a space between the leading punctuation mark and the quote fixes the problem, but this (a) affects the output and (b) can itself interfere with typographer if the leading punctuation is also a quote, i.e. "'"foo"'" cannot be 'fixed' with " '"foo"'".
While correct behavior is clear for the example shown, namely
The dog—“‘man’s’ best friend”

it's not immediately obvious how to decide correct behavior for all input.  Em dashes in particular are space-like, and so perhaps could be treated as such unless there is actual white space on the other side of the quotation mark.  This still doesn't address quotes between other quotes; for that, it may be necessary to look ahead and behind past all adjacent punctuation to determine if the nearest non-punctuation character is white space or otherwise.

Seems issue contains too much. First, keep in mind, built-in typographer is simple/basic, and there are no plans to make it full-featured. This should be done via plugins, and discussions about euristics should be kept aside.
But we could try to fix obvious bugs. Could you narrow down your example and express it via online demo? Something like this. If it's the only "obvious bug" - then just confirm.

Thanks for the response, and the demo link you give exactly expresses the behavior I'm having trouble with.  The quickest fix seems to be treating em dash the same as white space for the purpose of quotation marks and not worrying about the other behavior I mention.

Fixed by allowing opening quote to be inside of punctuation sequence. It wasn't allowed before, don't remember why, probably just didn't find any useful cases until now.


API:Implement Validation for the Error Suppression GET Endpoint

As the ECMPS system, I need to have validation for the error suppression GET endpoint so that all required parameters are chosen:
GET /camd-services/error-suppressions
Filter Parameters

[x] checkTypeCode (Required parameter)
[x] checkNumber (Required parameter)
[x] checkResult (Required parameter)
[x] severityCode (Drop-down in Swagger) Validation against the database We will reuse
[x] facilityId (orisCode) We will reuse this one
[x] reasonCode (Drop-down in Swagger) Validation against the database We will reuse
[x] beginDateHrQtr Validation that it's one of the three formats below
[x] endDateHrQtr Validation that it's one of the three formats below
Date Range - YYYY-mm-dd
Hour Range - YYYY-mm-dd hh
Quarter Range – YYYY Q1
[x] Create validation for if a user enters an endDateHrQtr then a beginDateHrQtr needs to be entered as well

Error Messages:
[ ] The (property) is not valid refer to the list of available (properties)  for valid values (For code properties)
[ ] The checkTypeCode should not be null, undefined, or empty
[ ] The checkNumber should not be null, undefined, or empty
[ ] The checkResult should not be null, undefined, or empty
[ ] The facilityId is not valid refer to the list of available facilities for valid values
[ ]  Ensure beginDateHrQtr/endDateHrQtr are in the following formats Date Range - YYYY-mm-dd /Hour Range- YYYY-mm-dd hh/Quarter Range – YYYY Q1
beginDateHrQtr cannot be null, undefined, or empty if endDateHrQtr is filled

@acollad1

Based on 4/18 refinement need clarification on the difference bewteen the following error messages:
The (filter parameter) is not valid
The (property) is not valid refer to the list of available (properties) for valid values (For code properties)

Need an error message for Create validation for if a user enters an endDateHrQtr then a beginDateHrQtr needs to be entered as well

reasonCode - error

reasonCode - Dropdown

beginDateHrQtr and endDateHrQtr - Error messages

Validations have been implemented.


Add /sys/fs/cgroup as a volume in the docker image

Without this we fail to start rabbitmq-server with the following output:
rabbitmq-server[3169]: systemd unit for activation check: "-.slice"
rabbitmq-server[3169]: Unexpected status from systemd "systemctl: invalid option -- '.'\n"
rabbitmq-server[3169]: systemd READY notification failed, beware of timeouts
https://bugzilla.redhat.com/show_bug.cgi?id=1516829
See also: https://github.com/rabbitmq/rabbitmq-server/issues/1187

/cc @simaishi


Version Correlation with Microsoft Website

Driver version or jar name
I don't know.  That's exactly the problem.
When I go to https://www.microsoft.com/en-us/download/details.aspx?id=54671 I get the most recent version as sqljdbc_4.2.8112.100_enu from June 5th 2017, but here I get numbers like 6.2.1.
What is the correlation between the versioning schemes?  Are the ones here more up to date?  Is this repository the official "home" of the MSSQL JDBC drivers?
Please clarify, thank you.

Hi @isapir, apologies for the confusion.

What is the correlation between the versioning schemes?

When we open sourced the JDBC Driver (v6.1.0), we updated the naming convention for the jars to make it easier for users to understand what versions of the jars they should use.
The previous jars, including the ones in the sqljdbc_4.2.8112.100_enu package, are named sqljdbc41.jar or sqljdbc42.jar. This caused a lot confusion as the 41 and 42 in the name actually corresponds to the JDBC specification number and not the JDBC version number.
To help alleviate this confusion, beginning v6.1.0+, we switched to mssql-jdbc-#.#.#.jre7.jar and mssql-jdbc-#.#.#.jre8.jar. This was done to make it more straightforward to understand which jar should be used for the appropriate JDK. More info in this blog.

Are the ones here more up to date?

Beginning v6.1.0+, we use GitHub and Maven Central to release our previews, while the Microsoft Download Center is used only to release stable/RTW versions of the driver. The most recent RTW release was v6.2. The Microsoft Download Center link is here. The Microsoft Download Center package contains the jars and extra DLLs required for XA transactions and integrated authentication on Windows. If you just want the jars, you can also get them on Maven Central.

Is this repository the official "home" of the MSSQL JDBC drivers?

Yes, this GitHub repository is the official home/source code repository for the JDBC Driver. We do all active development here.
Hope that answers your questions. Please let me know if there's anything else you'd like clarification for.

Thank you for clarifying.


ProjectToType Expression Generation Customization (Parameter Naming)

I'm using ProjectToType to generate mapping expressions for both SQL Server projects and a MongoDB project:  I haven't run into any issues with expressions generated for SQL Server, but with MongoDB, if my expression contains children collections, the generated expression results in their driver producing a query that throws this error:
Command aggregate failed: '_p1' starts with an invalid character for a user variable name.
I'm assuming p1 is the name of the expression parameter (here maybe? https://github.com/MapsterMapper/Mapster/blob/master/src/Mapster/Adapters/CollectionAdapter.cs#L120).  If I don't let Mapster automatically handle the collection and instead do it manually (.Map(i => i.Mapped, i => i.Original.Select(...)), I don't receive that error.
Being able to control expression parameter naming would be an obscure request, but is there a way I can tap into the expression generation pipeline to add in an expression visitor (to correct the parameters, for example)?

Hi @jayoungers,
Is it possible for you to show me the query where ProjectToType is used that triggers this error?

@andrerav - Here's the expression that gets generated along with the resulting applicable mongodb query:
.Select(Param_0 => new ItemFacade() {
	Id = Param_0.Id.ToString(),
	Children = Param_0.Children.Select(Param_1 => new ChildFacade() {ChildId = Param_1.ChildId})
})

{ "$map" : { "input" : "$Children", "as" : "_p1", "in" : { "ChildId" : "$$_p1.ChildId" } } }

And this is the result if I manually map the child collection (naming the parameter i):
.Select(Param_0 => new ItemFacade() {
	Id = Param_0.Id.ToString()
	Children = Param_0.Children.Select(i => new ChildFacade() {ChildId = i.ChildId})

{ "$map" : { "input" : "$Children", "as" : "i", "in" : { "ChildId" : "$$i.ChildId" } } }

My assumption is this is potentially an issue with their driver, but I'm hoping if there's an existing hook in mapster to adjust the expression prior to it being compiled, I could rename the params that weren't named

the mongodb driver was updated to handle these parameters


Plugin configuration values are limited to 200 chars, which is not enough for apprise

Please verify that this bug has NOT been raised before.

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

Describe the bug*
I ran into a problem while configuring inventree-apprise, where the required configuration field is not long enough (reported at the plugin here: https://github.com/matmair/inventree-apprise/issues/1). In short the MS Teams integration requires a long URI with several tokens which does not fit into the 200 chars limit of the configuration field.
Steps to Reproduce
Add inventree-apprise and attempt to configure a MS Teams plugin by setting NOTIFICATION_APPRISE_URL using a URI longer than 200 chars. The value will be cut at 200 chars, rendering the config invalid.
Expected behaviour
the string will fit into the config value
Deployment Method

[X] Docker
[ ] Bare metal

Version Information
0.12.3 with inventree-apprise 1.0
Please verify if you can reproduce this bug on the demo site.

[X] I can reproduce this bug on the demo site.

Relevant log output
No response

The following line would need to be changed to allow more than 200 chars. https://github.com/inventree/InvenTree/blob/54e0e47c6ae98ac920f4496e65b12b3551c89d93/InvenTree/common/models.py#L585


Better documentation for timber/context filter

Is your feature request related to a problem? Please describe.
In fishing around the docs for an example to post to #1821, I realized that the timber/context filter is not very well documented. It's a pretty fundamental concept, in my experience there's a use-case for it on pretty much every site I build, but the most concrete example I found was for Setting up a menu  @globally, which does not make it clear that this is a general-purpose filter.
Describe the solution you'd like
I'd expect to see this in a Guide or on one of the Getting Started pages. Theming is the best place for it IMO.
Describe alternatives you've considered
Not documenting it further?
Additional context
I'd add additional context if I knew how. See what I did there?

Good thinking! It’s not very well documented in version 1 of Timber, but it will be in version 2 in a new Context Guide as well as a filter description for timber/context:
https://github.com/timber/timber/blob/5101648dd78bdb0b3546864e6674cd284327af9c/lib/Timber.php#L323-L367
The documentation for version 2 will generate a separate Hooks section with an action and filter reference from the DocBlocks of filters. Here’s a preview for the context filter:

Brilliant! I'll close this out in that case, sounds like it's covered.
I did make a small tweak to the filter's doc comment, to use Timber::context() instead of the deprecated get_context(). I thought doing so through via the GH editor would create a PR from our fork, but I guess since I'm officially on the timber/timber repo now, it just committed directly on the 2.x branch. It's a tiny change but just thought I'd call that out since it didn't go through the normal flow, and I'll be more careful with that in the future! :stuck_out_tongue:


fix: Re-arrange username + handle [DEV-2435]

Discards username + populates name with TG handle.
Adds display name as concatenated first + last name.

Task linked: DEV-2435 Fix bug in usernames being stored from Telegram in LogTo


Adds Dockerfile

Also adds the IntelliJ folder to .gitignore.
Required by https://github.com/nikku/wuffle/issues/25

Thanks for the PR.
So, what is the purpose of this docker file?

simple try out
simple run in production
anything else?

We're currently deploying this to our Kubernetes cluster. To be able to do that we have to clone your repo and build it as a Docker image. Having this in the main Wuffle repo saves us and anyone else from having to create our own Docker image.
The next ideal step would be for this to be published to https://hub.docker.com/ as that would then save us from having to clone this repo to get the Docker image.

Thanks for your contribution. A few quick things:

for building the image and distribution we should use the builder pattern: one image to build the app and another one to copy / install only the production dependencies to
we must install and build the client, otherwise the resulting app will not be usable. I do not see how your script does that
It probably makes sense to build and run using alpine images (smaller footprint, download and install)

Do you have any idea how publishing to docker hub works?

Figured out publishing to docker hub.
Pre-built images will be available via nrehwaldt/wuffle:{latest|next}.
Added a docker file that circumvents the problems mentioned above: https://github.com/nikku/wuffle/tree/master/support/docker


feature request : auto zip files

Have the ability to auto zip files once they are uploaded.

Yes, the zipping feature confuses clients as once it starts happening, we get a spinning wheel with no timeline and people think the page is stuck.


Add an exit without save option

Problem:
At the moment you can only 'save & exit' the game. It would be great to have the possibility to exit the game without saving.
How To:
You need to create a new Button with Bootstrap4. To delete saved values you can reuse the delete function. Feel free to add your name to the readme and the footer!

After trying the game I thought I'd suggest just changing "Save & Exit" to just "Exit" and having it save the game just as it does now. From the user's perspective it won't matter that the game gets automatically saved, they can just click "New game" if they don't want to continue the old one. Players might also click the "Exit" button accidentally without realizing they should have clicked on "Save & Exit" instead if they wanted to continue later.

@Kaivosukeltaja good point. I will do it this way.

I have added the requested exit button. However, there are issues with your gameOver function which keeps creating New Game buttons after a game is over.
https://github.com/lbarros00/editable-web-quiz/commit/4e4a595891a25ad62219855f736f9bbc8b263be0


Custom m3u8 for map audio

When video has multiple audio, maybe it would be nice if we can choose the best audio language, the ffprobe can give all index audio.

Generate m3u8 for custom video, audio and subtitle index could be nice too.

As separate manifest? E.g. profile-eng.m3u8 or joined together in one playlist as multiple audios?

It's a nice idea, but how it will work if the video has multiple audios in english or unknow language? What do you think in profile-eng-00.m3u8, profile-eng-01.m3u8 and, profile-ger-00.m3u8, profile-por-00.m3u8, profile-UNK-00.m3u8, profile-UNK-02.m3u8?
unk=unknow

Yes, I agree, stream index could be used. And then maybe either using filter options as query parameters or in the name of manifest.

profile-0.m3u8
profile-1.m3u8
profile-2.m3u8
Inside the master playlist, you could put the language name/details.


Rails 4.2 support

Now that rails 4.2 is out, get the final kinks out of the 4.2 branch.
Opening this issue since PRs #175 and #186 with discussion of 4.2 development are closed.

Getting JRuby to work with ActiveRecord 4.2 is a much bigger job than I thought.  It will take a while, and could be tracked in a separate issue.

@donv

Getting JRuby to work with ActiveRecord 4.2 is a much bigger job than I thought.

Bummer, I hoped it was already pretty close in the 1.x branch (given the work done by @bacrossland in #173).

could be tracked in a separate issue.

sure, go ahead and open one!

That is a bummer. When last I dove into the 1.x branch, the tests for JRuby only failed on AR 4.0. AR 4.1 passed as did AR 3.2. I had changed nothing in my gem setup just switching between AR versions. Digging into that it turns out that the failure is due to changes in AR 4.0 that were fixed in AR 4.1. So the 1.x branch with the #173 fix supported JRuby in all AR versions except 4.0.
@donv I'm interested in seeing that issue opened and hearing about what you've already discovered.

In case any of you are interested, I had a few spare moments today so I cleaned up the master branch more.  it's now at 100% code coverage.

Great!
@ronen @bacrossland I started looking at getting ARJDBC working with AR4.2 without schema_plus, and I found and fixed some things, but it is a big gem to wade through, and I got discouraged and dropped it.  I will pick it up at some point, I am sure, but for now I am working on other projects.
The issue to track ARJDBC+AR42 support is here:  https://github.com/jruby/activerecord-jdbc-adapter/issues/599
Would be nice to make progress there.

started  [C].  see the refactor branch

Woohoo! Great!

Nice!

Closing this out to move discussion to #197.  Feedback welcome!


2.5D animation does not render correctly in IE

Hi there,
try running this animation in IE11 or Edge and then compare it to Chrome or Firefox:
var animationData = {"v":"4.6.3","fr":25,"ip":0,"op":101,"w":1000,"h":1000,"nm":"2.5D Test 01","ddd":1,"assets":[],"layers":[{"ddd":1,"ind":1,"ty":3,"nm":"Null 1","ks":{"o":{"a":0,"k":0},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"or":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.333,"y":0},"n":"0p833_1_0p333_0","t":0,"s":[0,0,0],"e":[0,180,0],"to":[0,0,0],"ti":[180,0,0]},{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0},"n":"0p833_0p999_0p167_0","t":25,"s":[0,180,0],"e":[90,270,0],"to":[0,0,0],"ti":[270,0,0]},{"i":{"x":0.833,"y":0.999},"o":{"x":0.167,"y":0.001},"n":"0p833_0p999_0p167_0p001","t":50,"s":[90,270,0],"e":[270,0,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.167,"y":0.001},"n":"0p833_1_0p167_0p001","t":75,"s":[270,0,0],"e":[0,0,0],"to":[0,0,0],"ti":[0,0,0]},{"t":100}]},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":0,"s":[500,500,1591],"e":[500,500,3335],"to":[0,0,290.666656494141],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"n":"0p667_1_0p333_0","t":25,"s":[500,500,3335],"e":[500,500,1591],"to":[0,0,0],"ti":[0,0,290.666656494141]},{"t":100}]},"a":{"a":0,"k":[50,50,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":1,"ind":2,"ty":1,"nm":"Red Solid 1","parent":1,"ks":{"o":{"a":0,"k":100},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"or":{"a":0,"k":[0,0,0]},"p":{"a":0,"k":[50,50,1000]},"a":{"a":0,"k":[960,540,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1920,"sh":1080,"sc":"#cb202c","ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":1,"ind":3,"ty":1,"nm":"Orange Solid 1","parent":1,"ks":{"o":{"a":0,"k":100},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"or":{"a":0,"k":[0,0,0]},"p":{"a":0,"k":[50,50,-1000]},"a":{"a":0,"k":[960,540,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1920,"sh":1080,"sc":"#ed7125","ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":1,"ind":4,"ty":1,"nm":"Orange Solid 2","parent":1,"ks":{"o":{"a":0,"k":100},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"or":{"a":0,"k":[0,270,0]},"p":{"a":0,"k":[-950,50,0]},"a":{"a":0,"k":[960,540,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1920,"sh":1080,"sc":"#f8ab1b","ip":0,"op":250,"st":0,"bm":0,"sr":1},{"ddd":1,"ind":5,"ty":1,"nm":"Red Solid 2","parent":1,"ks":{"o":{"a":0,"k":100},"rx":{"a":0,"k":0},"ry":{"a":0,"k":0},"rz":{"a":0,"k":0},"or":{"a":0,"k":[0,270,0]},"p":{"a":0,"k":[1050,50,0]},"a":{"a":0,"k":[960,540,0]},"s":{"a":0,"k":[100,100,100]}},"ao":0,"sw":1920,"sh":1080,"sc":"#e54b27","ip":0,"op":250,"st":0,"bm":0,"sr":1}]};
var params = {
container: document.getElementById('bodymovin'),
renderer: 'html',
loop: true,
autoplay: true,
animationData: animationData
};
var anim;

anim = bodymovin.loadAnimation(params);

You'll see that in Chrome and FF it'll look fine, but in IE/Edge it looks as if its zoomed in heavily.
When you change the renderer to svg or canvas, chrome and FF exhibit the same behavior.
Hope anyone can tell me if I'm doing anything wrong or if this might be a bug.
Thanks in advance,
cheers,
Roland

hi, can you share the .aep file?

Here you go, thanks a lot for your quick response!
BODYMOVIN 2.5D TEST.zip

I have to look further into it. But it seems edge is not handling perspective correctly.
Have you tried how it looks on safari?

No, I haven't, I don't have acces to a Mac right now, so its difficult for me to check...

By the way, Chrome and Firefox have the same behavior when setting the renderer to svg or canvas. Only renderer=html works correctly, in our experience.

yes, 2.5d is only supported by the html renderer.
But Edge's behavior is not exactly the same as using the other renderers.

Aha, I see, sorry for the confusion ;)


Unable to compile release build

Here is the gradle log. I've tried a couple of things but couldn't get the build to work

Task :react-native-voip-call:verifyReleaseResources FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':react-native-voip-call:verifyReleaseResources'.

A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
Android resource linking failed
/home/master/.gradle/caches/transforms-2/files-2.1/37abfcfbc82b67ac6e52fc7a4652058d/appcompat-1.0.2/res/values-v28/values-v28.xml:5:5-8:13: AAPT: error: resource android:attr/dialogCornerRadius not found.

 /home/master/.gradle/caches/transforms-2/files-2.1/37abfcfbc82b67ac6e52fc7a4652058d/appcompat-1.0.2/res/values-v28/values-v28.xml:9:5-12:13: AAPT: error: resource android:attr/dialogCornerRadius not found.

 /home/master/.gradle/caches/transforms-2/files-2.1/1c57a05a5d283c9a708b173ed536b993/core-1.0.1/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found.

 /home/master/.gradle/caches/transforms-2/files-2.1/1c57a05a5d283c9a708b173ed536b993/core-1.0.1/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.

Ive found that upgrading the compile and target sdk version in build.gradle file of this library fixes the issue. I shall make a PR shortly

In New Version fixed this issue
Thanks & Regards
Ajith A B


branch-2.0 fix TLoadTxnBeginRequest backend_id's field no

Make backend_id's field no the same with master branch.
For upgrading, change backend_id's field no is safe,   because old fe can torrent with TLoadTxnBeginRequest not setting backend id.

run buildall


Adapt new simdjson pointer interface

It seems simdjson got a new API which is pointer based. Now, we may use this API instead of the simple version I implemented.
The simdjson API may not have the best efficiency when parsing multiple fields at the same time. Need more investigation.

Please refer to #11


Nuitka and numpy-scipy-pyqt5-pyexcel

I am re-publishing my question with the publication requirements in mind.
nuitka --version 0.6.7
Python: 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 09:44:33) [MSC v.1900 32 bit (Intel)]
Executable: C:\Python37\python.exe
OS: Windows
Arch: x86
nuitka is installed using pip
and according to the author's recommendation, I don't use the --include-plugin-directory option.
now I do the following:
nuitka
--follow-imports
--plugin-enable=qt-plugins
--plugin-enable=numpy
--plugin-enable=pylint-warnings
--mingw64
rations_all_in_one.pyw

This leads to the following warnings:
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\lml\utils.py:51' may require use of '--include-plugin-directory' or '--include-plugin-files'.
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\lml\utils.py:64' may require use of '--include-plugin-directory' or '--include-plugin-files'.
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\numpy\core\function_base.py:506' may require use of '--include-plugin-directory' or '--include-plugin-files'.
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\numpy\lib\utils.py:393' may require use of '--include-plugin-directory' or '--include-plugin-files'.
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\numpy\lib\utils.py:887' may require use of '--include-plugin-directory' or '--include-plugin-files'.
Nuitka:WARNING:Unresolved '__import__' call at 'C:\Python37\lib\site-packages\numpy\lib\utils.py:945' may require use of '--include-plugin-directory' or '--include-plugin-files'.

And my compiled exe file still causes errors on startup
Traceback (most recent call last):
  File "F:\ПРОГРАММЫ\Девелоп\Sterns\sterns_project\rations_all_in_one.pyw", line 4, in <module>
    import pyexcel
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel\__init__.py", line 12, in <module pyexcel>
    from .book import Book
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel\book.py", line 11, in <module pyexcel.book>
    from pyexcel.sheet import Sheet
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel\sheet.py", line 14, in <module pyexcel.sheet>
    from pyexcel.internal.sheets.row import Row as NamedRow
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel\internal\__init__.py", line 12, in <module pyexcel.internal>
    from pyexcel.internal.source_plugin import SOURCE  # noqa
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel\internal\source_plugin.py", line 17, in <module pyexcel.internal.source_plugin>
    import pyexcel_io.constants as io_constants
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:\Python37\lib\site-packages\pyexcel_io\__init__.py", line 27, in <module pyexcel_io>
    plugins.load_plugins(
  File "C:\Python37\lib\site-packages\pyexcel_io\plugins.py", line 137, in load_plugins
    scan_plugins_regex(
  File "C:\Python37\lib\site-packages\lml\loader.py", line 130, in scan_plugins_regex
    for module_name in all_modules:
  File "C:\Python37\lib\site-packages\lml\loader.py", line 116, in <genexpr>
    module_info[1]
  File "C:\Python37\lib\pkgutil.py", line 130, in iter_modules
    for name, ispkg in iter_importer_modules(i, prefix):
  File "C:\Python37\lib\functools.py", line 840, in wrapper
    return dispatch(args[0].__class__)(*args, **kw)
  File "C:\Python37\lib\pkgutil.py", line 140, in iter_importer_modules
    return importer.iter_modules(prefix)
TypeError: descriptor 'iter_modules' requires a 'nuitka_module_loader' object but received a 'str'

I strongly suspect, you didn't do this point:

Please check out if the develop version of Nuitka works better for you.

I believe this was alredy fixed on develop, but I might be wrong.

would you be so kind as to give me a link to the develop version

I installed the develop version:
nuitka --version 0.6.8rc5 Python: 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 09:44:33) [MSC v.1900 32 bit (Intel)] Executable: C:\Python37\python.exe OS: Windows Arch: x86
But it didn't eliminate the errors, they remained the same. The compilation seems to be completed successfully:
F:\ПРОГРАММЫ\Девелоп\Sterns\sterns_project>nuitka --follow-imports --plugin-enable=qt-plugins --plugin-enable=numpy --plugin-enable=pylint-warnings --mingw64 rations_all_in_one.pyw Nuitka-Plugins:INFO: Injecting plug-in based pre load code for module 'PyQt5': Nuitka-Plugins:INFO:     Adding dist folder to 'PATH' environment variable.
but when you run the exe file, the same error occurs as in my first post:
TypeError: descriptor 'iter_modules' requires a 'nuitka_module_loader' object but received a 'str'

I guess, you can strip code code down to imports, and pyexcel_io will already do it. Your options indicate that you use plugins that only make sense for standalone mode, yet it's not on the command line, but that's only an aside.
I managed to reproduce this now, and will look into it. Thanks for the report!

The feature missing of the Nuitka loader was implemented a while ago.


Automate GitHub Release Process

Should be able to use same approach as for V2 Result Writer.

:tada: This issue has been resolved in version 3.9.0 :tada:
The release is available on:

GitHub Release
NuGet Package
Chocolatey Package


Add source/sink mismatch exceptions

If a user includes a variable which is incorporated as either a source (endowment/input) or sink (final demand/outputs) but missing the reciprocal use, we should generate a specific error message identifying the mismatch (at the build stage).
Related to #38

I don't think we can do this at build because the model builds incrementally. Perhaps on first solve we can run a check.
There is something about market clearance here, even solving a counterfactual this would only balance if the commodity were zero. I'll do some testing soon.


BUG: Service Callback does not include source payload

Description
Service Callbacks have a feature of including a source payload in the webhook request.  If the "include_provider_payload" flag is set to true for the callback, then the webhook should include the source payload in the POST request to the webhook endpoint.  If it is set to false, then the source payload should NOT be included in the POST request.
The bug found was that regardless of the value of "include_provider_payload", no source payload was included in the POST request to the webhook endpoint.

Code merged into master and deployed to Perf.
The provider_payload is now populated when set to True.

However, new behavior is that my callback is being hit for every message, whether email through SES or sms through Pinpoint. Noticed this when I ran the regression. The regression was run this morning and the my callback was not hit for that.

Will bring up with team on Monday.

This is working as designed. Deployed the code to staging (manually) and closing ticket.

@jakehova @k-macmillan Can you please point this since it's closed? CC @tabinda-syed


Spotify (guest) broken

Please tick all applicable boxes.

[V ] I am using Python 3.5.3 or higher (run python --version on the command line)
[V ] I have followed the official guides to install the bot for my system
[V ] I have updated my dependencies to the latest version using the appropriate update script

Which version are you using?

[ ] The latest master version (release-260419)
[V ] The latest review version

What type of issue are you creating?

[V ] Bug
[ ] Feature request
[ ] Question

Description of issue

you get an 404 error, while trying to use spotify (atleast: in guest mode)
I might Spotify might have changed how their API works, but im not sure.
Steps to reproduce

setup the bot
run the bot
get the error

Log file
Please attach your MusicBot log file (located at logs/musicbot.log) to this issue. You can do so by dragging and dropping the file here. If you do not include your log file, you WILL be asked to provide one.

I'm not seeing that issue.
Please attach your log file.

log.txt

What do you see when you open https://open.spotify.com/get_access_token?reason=transport&productType=web_player in browser?

sorry to use

sorry to use

wdym, @sarker727

Thank you, fixed in #2201
Hopefully will be merged soon to review.


Update for wlroots 0.16.0

See https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/0.16.0

Nice! Expect some PRs!

Excerpts from their release notes as potential TODOs to downstream to us (not exhaustive, just things I think are likely needed):

[ ] new protocol: ext-session-lock-v1
[ ] new protocol: idle-notify-v1
[ ] new protocol: single-pixel-buffer-v1
[ ] A new wlr_damage_ring helper supersedes wlr_output_damage without being as invasive.
[ ] Minor version 5 of xdg-shell has been implemented, adding support for popup repositioning, configure bounds and WM capabilities.
[ ] High-res scroll wheel events are now supported.
[ ] Minor version 4 of wlr_output_management-v1 has been implemented, adding support for managing adaptive sync (VRR).
[ ] layer-shell: fix type of margins: wlr_layer_surface_v1_state.margin.{top,bottom,left,right} type has been changed from uint32_t to int32_t as specified by the protocol.
[ ] remove wlr_box.h redirection
[ ] Split wl_compositor and wl_subcompositor implementation (!3412)
[ ] output-layout: make wlr_output_layout_get_box() take a box as parameter (!3439)
[ ] xdg-shell refactor (!3326)

[ ] All wlr_xdg_toplevel_*() functions now take wlr_xdg_toplevel as the main parameter.
[ ] All wlr_xdg_popup_*() functions now take wlr_xdg_popup as the main parameter.
[ ] wlr_xdg_toplevel_*_event structs now have a wlr_xdg_toplevel field instead of wlr_xdg_surface.
[ ] wlr_xdg_toplevel::parent is now wlr_xdg_toplevel instead of wlr_xdg_surface.
[ ] wlr_xdg_toplevel_set_fullscreen_event is removed.
[ ] All wlr_xdg_surface signals now have NULL as their argument.
[ ] All wlr_xdg_toplevel signals which don't have an associated event struct now have NULL as their argument.

[ ] The previous wlr_xdg_positioner has been renamed to wlr_xdg_positioner_rules. The new wlr_xdg_positioner represents an actual Wayland object.
[ ] wlr_seat_set_keyboard() now takes a wlr_keyboard * instead of wlr_input_device.
[ ] wlr_xwayland_surface_hints and wlr_xwayland_surface_size_hints have been replaced by xcb_icccm_wm_hints_t and xcb_size_hints_t respectively. wlr_xwayland_surface.hints_urgency has been removed, use xcb_icccm_wm_hints_get_urgency instead.
[ ] xdg-shell: specify version in wlr_xdg_shell_create (!3547)
[ ] xdg-shell: add v3 support (!3514)

[ ] wlr_xdg_popup.geometry has been moved to wlr_xdg_popup_state and is now double-buffered.
[ ] wlr_xdg_popup.positioner_rules is removed.

[ ] output-damage: deprecate (!3837)

[ ] wlr_output_damage API has been deprecated. Use wlr_damage_ring (wlr/types/wlr_damage_ring.h) instead.

[ ] render: replace wlr_texture_write_pixels with update_from_buffer (!3585)
[ ] render: drop wlr_renderer_read_pixels() flags (!3749)

Hello, sorry for being late but i wanted to contribute and i don't really know what to do.
I was trying to implement the new protocols, even though i am using the already implemented protocols as reference, i'm still unable to do so.

Hey @Sydiepus, that's awesome that you want to help out, as you can see some things are remaining. The PR https://github.com/flacjacket/pywlroots/pull/109 has all of the updates that I've made so far, i.e. those things listed above that are ticked off.
The process for adding things is a bit ad-hoc and there is no documentation for this, but I can tell you what I do. However, I should note that when I do add things they are pretty biased towards what Qtile needs to support, rather than adding classes that correspond to every struct, or methods for every function (e.g. see gamma control, which needed only a single function for support https://github.com/flacjacket/pywlroots/blob/main/wlroots/wlr_types/gamma_control_v1.py). When adding new protocols I'll either take an educated guess as to what I need (based on reading the source for sway/dwl/other compositors) or add support for that protocol to Qtile at the same time.
So considering how support for a protocol might be implemented in C:

check out the release version of wlroots (that's important)
copy the relevant parts of the headers from wlroots/include/wlr/types into  pywlroots/wlroots/ffi_build.py. In many cases not everything within a file is needed to support that feature/protocol. Header extracts in ffi_build.py are largely in alphabetical order but not always, because sometimes things need to come before others otherwise it won't compile.
If the headers come from a new file it will also need to be added here: https://github.com/flacjacket/pywlroots/blob/main/wlroots/ffi_build.py#L2489
wlroots/include/wlr/types/ corresponds to pywlroots/wlroots/types/ so for a new protocol you can add a new python module there, probably easiest to just copy an existing one and follow the same structure.
Most classes subclass Ptr (https://github.com/flacjacket/pywlroots/blob/main/wlroots/init.py#L19) which just adds support for testing equality of two python objects based on the underlying pointer.
The names of classes are in most/all cases camel case versions of the C names without the wlr_ prefix, e.g. wlr_gamma_control_manager_v1 becomes GammaControlManagerV1
A tricky thing to consider is how/when the python representation of an object would be created. For example, an instance of GammaControlManagerV1 is expected to be created once at compositor startup, so the wlroots function that creates a gamma control manager is called within __init__(). In contrast, many C functions and structs can be used to get a pointer to the same wlr_surface, so the Surface class is instantiated using an existing pointer, and doesn't create any new C objects. For protocols, the former approach is usually right for the manager struct, but other objects that they might emit likely need the other approach. For example, see the two classes in https://github.com/flacjacket/pywlroots/blob/main/wlroots/wlr_types/idle.py
Structs that have signals use the Signal class in __init__() - just copy existing ones. Sometimes signals emit data too, which you can handle by passing a datawrapper= argument to signal, e.g. https://github.com/flacjacket/pywlroots/blob/main/wlroots/wlr_types/foreign_toplevel_management_v1.py#L55
Add any methods that are needed. In wlroots generally the function name will start with the struct name and take its pointer as a first argument. I don't think their API is stable or 100% consistent but you can do what you think makes sense.
For accessing members on the structs you can expose those via properties, decoding any strings or wrapping objects if appropriate

I hope that helps a bit. It was largely a stream of consciousness but hopefully gives a bit of clarity and maybe a reference to get started with adding new things to pywlroots. Happy to help out more when I can

Thank you !
You explained a lot of things i didn't understand and things that i would have missed, i now have a clearer idea on what to do.
I'll try my luck again though i don't expect much.
With hope that'll be able to contribute.

I implemented the idle-notify-v1 protocol, however i am facing multiple problems.

I am unable to compile the cffi bindings because of render/wlr_renderer.h not being found, shouldn't it be wlr/render/wlr_renderer.h or i'm missing some libraries.
I don't know how i should test my implementation.

Yeah I think you're right that it should be the wlr/ headers, which IIRC constitute their library API, whereas render/wlr_renderer.h is for their use (I think!). What does the error look like? If you are compiling using a git repo copy of their headers rather than system installed headers make sure to set any required env variables such as LD_LIBRARY_PATH
If you added the parts needed for compositors to support it, you would need to add support to a compositor (e.g. the tiny compositor in this repo or qtile) and then test that the bindings are doing what you expect when a client uses the protocol

I figured out the include error and fixed it in https://github.com/flacjacket/pywlroots/pull/109/commits/f815fb655cf7bf21aa577ca96b09cc76efd6359a. When I said LD_LIBRARY_PATH that was a mistake, I meant C_INCLUDE_PATH

Update, commit is here: https://github.com/flacjacket/pywlroots/pull/109/commits/541a738b20f57b85b074cb25b1e287d459a0eede. I had to fix that PR's history as I messed it up a while ago.

Sorry for the late response.
I'm using an alpine edge container to test my changes and i have wlroots installed from the official repos.
Thanks for the update, i would have never dared to touch the includes.
I'll try to test the protocol with the tiny compositor.
Thanks again.

Can close this now :)


2nd parameter in Location funcs should be set to TRUE

In funcs getLocation, getLocationMedia and searchLocation $authMethod should be set to true.
access_token should be provide for Instagram API. Just check manually your $apiCall variable.

Thanks for reporting!


Procedure additions/mutations => Variable updates

Refactored variable storage in the WorkspaceStats to use a new VariableInfo object.
Refactored procedure mutators to use a shared ProcedureInfo object for the mutator description.
Procedure blocks additions and changes now automatically create variables. Both of these produce changes on the ProcedureCustomCategory and VariableCustomCategory, respectively.
Fail gracefully on autoload.

This change is

Review status: 0 of 22 files reviewed at latest revision, 9 unresolved discussions, some commit checks broke.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 322 at r1 (raw file):

        final ProcedureInfo oldProcInfo = definitionMutator.getProcedureInfo();
        final String newProcedureName = updatedProcedureInfo.getProcedureName();
        final boolean isFuncRename = originalProcedureName.equals(newProcedureName);

This needs a !, it's a rename if the names are not equal.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 355 at r1 (raw file):

                // Mutate each procedure call
                List<Block> procedureCalls = mProcedureReferences.get(originalProcedureName);

in a rename the old procedure name is never removed from mProcedureReferences or mProcedureNameManager. You may want a variation on removeDefinition that takes the procedure name and call it at the end to do cleanup of the old name.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 96 at r1 (raw file):

                    VariableInfoImpl varInfo = mVariableInfoMap.get(i);
                    varInfo.removeProcedure(oldName);
                    varInfo.addProcedure(newName);

Is this adding the procedure to every variable  in the workspace? I think you want to remove it from all the variables in the old list and then add it to all the variables in the new list, regardless of the name changing.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 257 at r1 (raw file):

     * Attempts to add a variable to the workspace.
     * @param requestedName The preferred variable name. Usually the user name.
     * @param allowRename Whether the variable name should be rename

"can be renamed"

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 276 at r1 (raw file):

        final String mDisplayName;
        /** FieldVariables that are set to the variable. */
        ArrayList<WeakReference<FieldVariable>> mFields = null;

Why do you keep creating and deleting mFields and mProcedures? Why not just leave them at 0 when there's nothing in them?

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 326 at r1 (raw file):

        }

        boolean removeField(FieldVariable newField) {

s/newField/oldField

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 340 at r1 (raw file):

                if (field == newField) {
                    mFields.remove(i);
                    --count;

nit: --count is unnecessary since you're returning. Fine to leave in for future safety. Missing check for mFields.isEmpty if this is the last variable in the list.

blocklylib-core/src/main/java/com/google/blockly/model/ProcedureInfo.java, line 53 at r1 (raw file):

        return mArguments;
    }

nit ws

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 262 at r1 (raw file):

        List<String> arguments = mProcedureInfo.getArguments();
        if (!arguments.isEmpty()) {
            sb.append("with:"); // message BKY_PROCEDURES_BEFORE_PARAMS

nit, replace 'with:' with a string resource.

Comments from Reviewable

Just some questions/nits then

Review status: 0 of 23 files reviewed at latest revision, 12 unresolved discussions.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 360 at r2 (raw file):

                definitionMutator.mutate(updatedProcedureInfo);
                if (isFuncRename) {
                    mProcedureNameManager.remove(originalProcedureName);

Fine for now, but might want a TODO to call a cleanup method at the end in case more things get added later.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 276 at r1 (raw file):
Previously, RoboErikG wrote…
Why do you keep creating and deleting mFields and mProcedures? Why not just leave them at 0 when there's nothing in them?

Still needs followup.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 90 at r2 (raw file):

        public void onProcedureMutated(ProcedureInfo oldInfo, ProcedureInfo newInfo) {
            String oldName = oldInfo.getProcedureName();
            String newName = newInfo.getProcedureName();

Just to check, does this still work if the list of args is what changed?

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 258 at r2 (raw file):

     * Attempts to add a variable to the workspace.
     * @param requestedName The preferred variable name. Usually the user name.
     * @param allowRename Whether the variable name can be rename.

nit: missing d on renamed.

Comments from Reviewable

Review status: 0 of 23 files reviewed at latest revision, 12 unresolved discussions, some commit checks pending.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 322 at r1 (raw file):
Previously, RoboErikG wrote…
This needs a !, it's a rename if the names are not equal.

Done.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 355 at r1 (raw file):
Previously, RoboErikG wrote…
in a rename the old procedure name is never removed from mProcedureReferences or mProcedureNameManager. You may want a variation on removeDefinition that takes the procedure name and call it at the end to do cleanup of the old name.

Done.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 96 at r1 (raw file):
Previously, RoboErikG wrote…
Is this adding the procedure to every variable  in the workspace? I think you want to remove it from all the variables in the old list and then add it to all the variables in the new list, regardless of the name changing.

Fixed.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 257 at r1 (raw file):
Previously, RoboErikG wrote…
"can be renamed"

Done.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 276 at r1 (raw file):
Previously, RoboErikG wrote…
Why do you keep creating and deleting mFields and mProcedures? Why not just leave them at 0 when there's nothing in them?

Memory usage.  While the lists are tiny, the VariableInfo objects are long lived objects where many/most variable probably don't need both lists, and if they list at least 1, I would not expect them to go down to zero (or vice versa) very often.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 326 at r1 (raw file):
Previously, RoboErikG wrote…
s/newField/oldField

Done.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 340 at r1 (raw file):
Previously, RoboErikG wrote…
nit: --count is unnecessary since you're returning. Fine to leave in for future safety. Missing check for mFields.isEmpty if this is the last variable in the list.

Removed.

blocklylib-core/src/main/java/com/google/blockly/model/ProcedureInfo.java, line 53 at r1 (raw file):
Previously, RoboErikG wrote…
nit ws

Weird.  My editor was configured to remove these.

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 262 at r1 (raw file):
Previously, RoboErikG wrote…
nit, replace 'with:' with a string resource.

Done.

Comments from Reviewable

Review status: 0 of 25 files reviewed at latest revision, 14 unresolved discussions, some commit checks pending.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 100 at r3 (raw file):

    private final NameManager mProcedureNameManager = new NameManager.ProcedureNameManager();

    // Used determine the visibility of procedures_ifreturn block in the ProcedureCustomCategory.

nit, missing 'to' after 'Used'

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 165 at r3 (raw file):

    /**
     * @return All the registered procedure definition blocks, keyed by

keyed by...?

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 257 at r1 (raw file):
Previously, AnmAtAnm (Andrew n marshall) wrote…
Done.

Still not done.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 90 at r2 (raw file):
Previously, RoboErikG wrote…
Just to check, does this still work if the list of args is what changed?

Still needs followup. Does this work correctly if the name doesn't change but the number or names of parameters does?

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureCallMutator.java, line 147 at r3 (raw file):

     * Updates the block using the mutation in the XML.
     *
     * @param parser The parser with the {@code <mutation>} element.

Do you need to escape the lt/gt signs?

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 157 at r3 (raw file):

    /**
     * Called when the mutator is attached to a block. It will make sure the procedure name on the
     * block's name field is in synch with the mutator's PRocedureInfo, and register a listener on

nits, usually sync without the h, PRocedureInfo capitlization typo.

Comments from Reviewable

Review status: 0 of 25 files reviewed at latest revision, 13 unresolved discussions, all commit checks successful.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 360 at r2 (raw file):
Previously, RoboErikG wrote…
Fine for now, but might want a TODO to call a cleanup method at the end in case more things get added later.

I'm not clear on the case you're considering.  I'll ask tomorrow.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 100 at r3 (raw file):
Previously, RoboErikG wrote…
nit, missing 'to' after 'Used'

Done.

blocklylib-core/src/main/java/com/google/blockly/android/control/ProcedureManager.java, line 165 at r3 (raw file):
Previously, RoboErikG wrote…
keyed by...?

...canonical procedure name.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 257 at r1 (raw file):
Previously, RoboErikG wrote…
Still not done.

Done for realzies.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 90 at r2 (raw file):
Previously, RoboErikG wrote…
Still needs followup. Does this work correctly if the name doesn't change but the number or names of parameters does?

TODO per offline conversation.

blocklylib-core/src/main/java/com/google/blockly/android/control/WorkspaceStats.java, line 258 at r2 (raw file):
Previously, RoboErikG wrote…
nit: missing d on renamed.

Done.

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureCallMutator.java, line 147 at r3 (raw file):
Previously, RoboErikG wrote…
Do you need to escape the lt/gt signs?

Inside a {@code} it should be fine.

blocklylib-core/src/main/java/com/google/blockly/model/mutator/ProcedureDefinitionMutator.java, line 157 at r3 (raw file):
Previously, RoboErikG wrote…
nits, usually sync without the h, PRocedureInfo capitlization typo.

Done.

Comments from Reviewable


Add async-await to default-features?

Since it works on 1.39 it might make sense to have this as a default-active feature. It's a significant bump in build-time, but the join! and select! macros seem useful/common enough to warrant it to me.

Makes sense to me, thought the build time cost is a bit unfortunate, especially since we can't undo this in a backwards-compatible way. I'll make this change unless anyone objects.


Keep-state Global Annotation

What problem does this feature solve?
To maintain state in an element of a list, one can use v-bind:key, as explained here. This makes creating a todo-list while keeping the local state intact (selections, focus, input text, other things the browser / included plugins deal with for us) trivial.
However, if I happen to want more than a todo-list, like, a Kanban Board, and I want to be able to move elements across columns, well, it does not work any more.
There are some hacks that could work for this particular case (having the Kanban board be a single array, that simply looks like a Kanban board through bad CSS tricks). But they are bad, and can not be extended to more complex situations (like, a recursive todo-list, the kind that you can find on Workflowy, Dynalist, Notion, etc.).
What does the proposed API look like?
How I could see it work is with a global-key attribute on vue elements. It would act exactly like key in v-for, but globally.

I'm not sure to grasp how global-key would work since it's precisely supposed to be local to an element/component. Overall, the information here is not enough to understand the feature request and it makes me understand you need guidance in implementing a board more than anything else. For the purpose, please use the forum, the Discord server or StackOverflow.

@posva

I'm not sure to grasp how global-key would work
you need guidance in implementing a board more than anything else

I tried to follow the form to make a ticket, and gave a fake example to illustrate my point. I don't need to write a Kanban board.
Perhaps I should have been more technical from the get-go? I'd like to give VueJS hints to its reconciliation algorithm to avoid re-renders. Alternatively, I'd like to be able to re-parent components. A similar issue on React is https://github.com/facebook/react/issues/3965 .
Those two comments might be clearer explanations of the need:

https://github.com/facebook/react/issues/3965#issuecomment-361705968
https://github.com/reactjs/rfcs/pull/34#issuecomment-372293861


Feature/email sending improvements

[!IMPORTANT]
Please open an issue before submitting a pull request to ensure that your bugfix, feature, etc is accepted beforehand.

Description

Free events now send confirmation emails, and for paid events, confirmation emails are sent much faster (in happy path).

Related issues
Yes

Closes #163

Screenshots (optional)
Replace this line with screenshots of UI changes if relevant.

Silmät ihan vitun ristissä mut ehkä tää toimii paremmin tällättii?

LGTM!!!!!!!!!!!!!!!!!!!!!