Undefined class constant 'MYSQL_ATTR_SSL_CA

Issue Type

Bug Report / Support Request

Your Environment

Vagrant 1.8.7
bash: vboxmanage: command not found
VirtualBox
bash: ansible: command not found

Your OS

Windows (version)

Full console output

https://gist.github.com/jesrig/d7979d21f0966e698dd84fe8e8415014
Summary

I'm running into the following error when trying to set up a new vagrant box:
TASK [geerlingguy.drush : Run drush to finish setting it up.] ******************
fatal: [ecmag]: FAILED! => {"changed": true, "cmd": ["/usr/local/bin/drush"], "delta": "0:00:04.792839", "end": "2016-12-08 15:49:45.713770", "failed": true, "rc": 255, "start": "2016-12-08 15:49:40.920931", "stderr": "PHP Fatal error:  Undefined class constant 'MYSQL_ATTR_SSL_CA' in /usr/local/share/drush/lib/Drush/Sql/Sqlmysql.php on line 56\nDrush command terminated abnormally due to an unrecoverable error.       [error]\nError: Undefined class constant 'MYSQL_ATTR_SSL_CA' in\n/usr/local/share/drush/lib/Drush/Sql/Sqlmysql.php, line 56", "stdout": "\nFatal error: Undefined class constant 'MYSQL_ATTR_SSL_CA' in /usr/local/share/drush/lib/Drush/Sql/Sqlmysql.php on line 56", "stdout_lines": ["", "Fatal error: Undefined class constant 'MYSQL_ATTR_SSL_CA' in /usr/local/share/drush/lib/Drush/Sql/Sqlmysql.php on line 56"], "warnings": []}
Here is my config.yml
---
# `vagrant_box` can also be set to geerlingguy/centos6, geerlingguy/centos7,
# geerlingguy/ubuntu1404, geerlingguy/ubuntu1204, parallels/ubuntu-14.04, etc.
vagrant_box: geerlingguy/ubuntu1404
vagrant_user: vagrant
vagrant_synced_folder_default_type: nfs

# If you need to run multiple instances of Drupal VM, set a unique hostname,
# machine name, and IP address for each instance.
vagrant_hostname: ecmag.dev
vagrant_machine_name: ecmag
vagrant_ip: <IP_ADDRESS>

# Allow Drupal VM to be accessed via a public network interface on your host.
# Vagrant boxes are insecure by default, so be careful. You've been warned!
# See: https://docs.vagrantup.com/v2/networking/public_network.html
vagrant_public_ip: ""

# A list of synced folders, with the keys 'local_path', 'destination', and
# a 'type' of [nfs|rsync|smb] (leave empty for slow native shares). See
# http://docs.drupalvm.com/en/latest/extras/syncing-folders/ for more info.
vagrant_synced_folders:
  # The first synced folder will be used for the default Drupal installation, if
  # any of the build_* settings are 'true'. By default the folder is set to
  # the drupal-vm folder.
  - local_path: .
    destination: /var/www/ecmag
    type: nfs
    create: true

# Memory and CPU to use for this VM.
vagrant_memory: 2048
vagrant_cpus: 1

# Minimum required versions.
drupalvm_vagrant_version_min: '1.8.5'
drupalvm_ansible_version_min: '2.1'

# Force use of ansible_local provisioner, even if Ansible is installed on host.
force_ansible_local: false

# The web server software to use. Can be either 'apache' or 'nginx'.
drupalvm_webserver: apache

# The database system to use. Can be either 'mysql' or 'pgsql'.
drupalvm_database: mysql

# Set this to 'false' if you are using a different site deployment strategy and
# would like to configure 'vagrant_synced_folders' and 'apache_vhosts' manually.
build_makefile: false
drush_makefile_path: "{{ config_dir }}/drupal.make.yml"
drush_make_options: "--no-gitinfofile"

# Set 'build_makefile' to 'false' and this to 'true' if you are using a
# composer based site deployment strategy.
build_composer: false
drupal_composer_path: "{{ config_dir }}/drupal.composer.json"
drupal_composer_install_dir: "/var/www/ecmag"
drupal_composer_dependencies:
  - "drupal/devel:1.x-dev"

# Set this to 'true' and 'build_makefile', 'build_composer' to 'false' if you
# are using Composer's create-project as a site deployment strategy.
build_composer_project: false
drupal_composer_project_package: "drupal-composer/drupal-project:8.x-dev"
drupal_composer_project_options: "--prefer-dist --stability dev --no-interaction"

# Set this to 'false' if you don't need to install drupal (using the drupal_*
# settings below), but instead copy down a database (e.g. using drush sql-sync).
install_site: false

# Required Drupal settings.
drupal_core_path: "{{ drupal_composer_install_dir }}"
drupal_db_user: drupal
drupal_db_password: drupal
drupal_db_name: drupal

# Settings for installing a Drupal site if 'install_site:' is 'true'.
drupal_major_version: 8
drupal_domain: "{{ vagrant_hostname }}"
drupal_site_name: "Drupal"
drupal_install_profile: standard
drupal_enable_modules: [ 'devel' ]
drupal_account_name: admin
drupal_account_pass: admin

# Additional arguments or options to pass to `drush site-install`.
drupal_site_install_extra_args: []

# Cron jobs are added to the vagrant user's crontab. Keys include name
# (required), minute, hour, day, weekday, month, job (required), and state.
drupalvm_cron_jobs: []
  # - name: "Drupal Cron"
  #   minute: "*/30"
  #   job: "drush -r {{ drupal_core_path }} core-cron"

# Drupal VM automatically creates a drush alias file in your ~/.drush folder if
# this variable is 'true'.
configure_drush_aliases: true

# Apache VirtualHosts. Add one for each site you are running inside the VM. For
# multisite deployments, you can point multiple servernames at one documentroot.
# View the geerlingguy.apache Ansible Role README for more options.
apache_vhosts:
  - servername: "{{ drupal_domain }}"
    serveralias: "www.{{ drupal_domain }}"
    documentroot: "{{ drupal_core_path }}"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://<IP_ADDRESS>:9000{{ drupal_core_path }}"

  - servername: "adminer.{{ vagrant_hostname }}"
    documentroot: "{{ adminer_install_dir }}"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://<IP_ADDRESS>:9000{{ adminer_install_dir }}"

  - servername: "xhprof.{{ vagrant_hostname }}"
    documentroot: "{{ php_xhprof_html_dir }}"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://<IP_ADDRESS>:9000{{ php_xhprof_html_dir }}"

  - servername: "pimpmylog.{{ vagrant_hostname }}"
    documentroot: "{{ pimpmylog_install_dir }}"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://<IP_ADDRESS>:9000{{ pimpmylog_install_dir }}"

  - servername: "{{ vagrant_ip }}"
    serveralias: "dashboard.{{ vagrant_hostname }}"
    documentroot: "{{ dashboard_install_dir }}"
    extra_parameters: |
          ProxyPassMatch ^/(.*\.php(/.*)?)$ "fcgi://<IP_ADDRESS>:9000{{ dashboard_install_dir }}"
          DirectoryIndex index.html

apache_remove_default_vhost: true
apache_mods_enabled:
  - expires.load
  - ssl.load
  - rewrite.load
  - proxy.load
  - proxy_fcgi.load

# Nginx hosts. Each site will get a server entry using the configuration defined
# here. Set the 'is_php' property for document roots that contain PHP apps like
# Drupal.
nginx_hosts:
  - server_name: "{{ drupal_domain }} www.{{ drupal_domain }}"
    root: "{{ drupal_core_path }}"
    is_php: true

  - server_name: "adminer.{{ vagrant_hostname }}"
    root: "{{ adminer_install_dir }}"
    is_php: true

  - server_name: "xhprof.{{ vagrant_hostname }}"
    root: "{{ php_xhprof_html_dir }}"
    is_php: true

  - server_name: "pimpmylog.{{ vagrant_hostname }}"
    root: "{{ pimpmylog_install_dir }}"
    is_php: true

  - server_name: "{{ vagrant_ip }} dashboard.{{ vagrant_hostname }}"
    root: "{{ dashboard_install_dir }}"

nginx_remove_default_vhost: true
nginx_ppa_use: true

# MySQL databases and users.
mysql_databases:
  - name: "{{ drupal_db_name }}"
    encoding: utf8mb4
    collation: utf8mb4_general_ci

mysql_users:
  - name: "{{ drupal_db_user }}"
    host: "%"
    password: "{{ drupal_db_password }}"
    priv: "{{ drupal_db_name }}.*:ALL"

# PostgreSQL databases and users.
postgresql_databases:
  - name: "{{ drupal_db_name }}"

postgresql_users:
  - name: "{{ drupal_db_user }}"
    password: "{{ drupal_db_password }}"
    db: "{{ drupal_db_name }}"
    priv: "ALL"

# Comment out any extra utilities you don't want to install. If you don't want
# to install *any* extras, set this value to an empty set, e.g. `[]`.
installed_extras:
  - adminer
  # - blackfire
  - drupalconsole
  # - elasticsearch
  # - java
  - mailhog
  # - memcached
  # - newrelic
  # - nodejs
  - pimpmylog
  # - redis
  # - ruby
  # - selenium
  # - solr
  - varnish
  - xdebug
  # - xhprof

# Add any extra apt or yum packages you would like installed.
extra_packages:
  - sqlite

# You can configure almost anything else on the server in the rest of this file.
extra_security_enabled: false

drush_version: "8.1.8"
drush_keep_updated: true
drush_composer_cli_options: "--prefer-dist --no-interaction"

firewall_allowed_tcp_ports:
  - "22"
  - "25"
  - "80"
  - "81"
  - "443"
  - "4444"
  - "8025"
  - "8080"
  - "8443"
  - "8983"
  - "9200"
firewall_log_dropped_packets: false

# PHP Configuration. Currently-supported versions: 5.6, 7.0.
# To use 5.6, see: http://docs.drupalvm.com/en/latest/other/php-56/
php_version: "5.6"
php_install_recommends: no
php_packages:
  - php5.6
  - php5.6-apcu
  - php5.6-mcrypt
  - php5.6-cli
  - php5.6-common
  - php5.6-curl
  - php5.6-dev
  - php5.6-fpm
  - php5.6-gd
  - php5.6-sqlite3
  - php5.6-xml
  - php5.6-mbstring
  - libpcre3-dev
php_conf_paths:
  - /etc/php/5.6/fpm
  - /etc/php/5.6/apache2
  - /etc/php/5.6/cli
php_extension_conf_paths:
  - /etc/php/5.6/fpm/conf.d
  - /etc/php/5.6/apache2/conf.d
  - /etc/php/5.6/cli/conf.d
php_fpm_daemon: php5.6-fpm
php_fpm_conf_path: "/etc/php/5.6/fpm"
php_fpm_pool_conf_path: "/etc/php/5.6/fpm/pool.d/www.conf"
php_mysql_package: php5.6-mysql

# Drupal VM defaults to using PHP-FPM with either Apache or Nginx. If you wish
# to instead use Apache + mod_php with an Ubuntu base box, make sure you add
# libapache2-mod-php7.0 to `extra_packages` elsewhere in this config file.
php_enable_php_fpm: true
php_fpm_listen: "<IP_ADDRESS>:9000"

composer_path: /usr/bin/composer
composer_home_path: "/home/{{ drupalvm_user }}/.composer"
composer_home_owner: "{{ drupalvm_user }}"
composer_home_group: "{{ drupalvm_user }}"
composer_global_packages:
  - { name: hirak/prestissimo, release: '^0.3' }

# Run specified scripts before or after VM is provisioned. Path is relative to
# the `provisioning/playbook.yml` file.
pre_provision_scripts: []
post_provision_scripts: []
  # - "../examples/scripts/configure-solr.sh"

# MySQL Configuration.
mysql_root_password: root
mysql_slow_query_log_enabled: true
mysql_slow_query_time: 2
mysql_wait_timeout: 300
adminer_install_filename: index.php

# Node.js configuration (if enabled above).
# Valid examples: "0.10", "0.12", "4.x", "5.x".
nodejs_version: "0.12"
nodejs_npm_global_packages: []
nodejs_install_npm_user: "{{ drupalvm_user }}"
npm_config_prefix: "/home/{{ drupalvm_user }}/.npm-global"

# Ruby Configuration (if enabled above).
ruby_install_gems_user: "{{ drupalvm_user }}"
ruby_install_gems: []

# Varnish Configuration (if enabled above).
varnish_listen_port: "81"
varnish_default_vcl_template_path: templates/drupalvm.vcl.j2
varnish_default_backend_host: "<IP_ADDRESS>"
varnish_default_backend_port: "80"

# Pimp my Log settings.
pimpmylog_install_dir: /usr/share/php/pimpmylog
pimpmylog_grant_all_privs: true

# XDebug configuration. XDebug is disabled by default for better performance.
php_xdebug_default_enable: 0
php_xdebug_coverage_enable: 0
php_xdebug_cli_enable: 1
php_xdebug_remote_enable: 1
php_xdebug_remote_connect_back: 1
# Use PHPSTORM for PHPStorm, sublime.xdebug for Sublime Text.
php_xdebug_idekey: PHPSTORM
php_xdebug_max_nesting_level: 256

# Solr Configuration (if enabled above).
solr_version: "5.5.2"
solr_xms: "64M"
solr_xmx: "128M"

# Selenium configuration.
selenium_version: 2.53.0

# Other configuration.
dashboard_install_dir: /var/www/dashboard
known_hosts_path: ~/.ssh/known_hosts
#ssh_home: "{{ drupal_core_path }}"

@jesrig - It looks like maybe your provisioning failed at least once, and PHP hasn't had a chance to restart. Can you run vagrant reload --provision and see if it passes?

@geerlingguy Nope, dies at the same place. I had actually done a full vagrant destroy before I had hit my above issue so I wasn't expecting it to pass.

@jesrig - In your config.yml, did you override the php_mysql_package as listed in the docs page? http://docs.drupalvm.com/en/latest/other/php-56/
If so, that package should be installed during provision.

@geerlingguy
Yes, these are my settings:
PHP Configuration. Currently-supported versions: 5.6, 7.0.
To use 5.6, see: http://docs.drupalvm.com/en/latest/other/php-56/
php_version: "5.6"
php_install_recommends: no
php_packages:

php5.6
php5.6-apcu
php5.6-mcrypt
php5.6-cli
php5.6-common
php5.6-curl
php5.6-dev
php5.6-fpm
php5.6-gd
php5.6-sqlite3
php5.6-xml
php5.6-mbstring
libpcre3-dev
php_conf_paths:
/etc/php/5.6/fpm
/etc/php/5.6/apache2
/etc/php/5.6/cli
php_extension_conf_paths:
/etc/php/5.6/fpm/conf.d
/etc/php/5.6/apache2/conf.d
/etc/php/5.6/cli/conf.d
php_fpm_daemon: php5.6-fpm
php_fpm_conf_path: "/etc/php/5.6/fpm"
php_fpm_pool_conf_path: "/etc/php/5.6/fpm/pool.d/www.conf"
php_mysql_package: php5.6-mysql

So... this is weird—I noticed in your full console output that MySQL was never installed at all. Neither the geerlingguy.mysql nor geerlingguy.php-mysql role was run, even though it looks like you have drupalvm_database: mysql set in your config.yml.
Those two roles have to run before the geerlingguy.drush role (which is where the failure occurs in your output); but I didn't even notice them run or skipped in your playbook output. See: https://github.com/geerlingguy/drupal-vm/blob/master/provisioning/playbook.yml#L58-L59
Do you know if you might have modified the playbook.yml file and removed or reordered some of the role includes? Or is anything else in your version of Drupal VM modified besides the config.yml?

@geerlingguy the only modifications I made were in this config.yml file, which is listed above. I did not modify playbook.yml or any other drupalvm file.

@jesrig - Can you also check what version of VirtualBox you have installed?
I'll do some more testing on my Windows laptop to see if something about Windows might be breaking things, but as of two days ago, all the defaults were confirmed working.

@geerlingguy I have Virtual box 5.1.6

@jesrig - On my Windows 10 laptop, I did the following (using cmder and also replicated in Cygwin):
$ git clone https://github.com/geerlingguy/drupal-vm.git
$ touch config.yml

# (Paste in the exact config.yml you have above)

$ vagrant up

After about 10 minutes, everything was running, and it showed that the entire setup process worked fine... it also showed the geerlingguy.mysql tasks running before any of the Drush tasks. I'm wondering if either you're using a fork of Drupal VM, or if something else is changed from the stock Drupal VM install.
Unless Ansible is broken or set up in a strange way, it will run the roles defined in the main playbook exactly in the order specified. So even if you had the database set to postgresql, it would still at least show that the mysql tasks were skipped.
Can you reproduce this issue if you download the latest version of Drupal VM and just copy over your config.yml file?

(Note also that I'm running Vagrant 1.9.0 and VirtualBox 5.1.10 on the Windows 10 laptop).

@geerlingguy Did a vagrant destroy, I updated to the latest Drupal VM (see below), and still hit the same error

$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Removing geerlingguy/drupal-vm (3.5.1)
Installing geerlingguy/drupal-vm (3.5.2)
Loading from cache
Writing lock file
Generating autoload files

If this helps anything, here is the snippet in my compser.json where I require drupalVM for my project:
"require-dev": {
"geerlingguy/drupal-vm": "^3.5"
}

Can you use a fresh download or clone of Drupal VM (rather than one included with your project through Composer) with the same config.yml, and see if it succeeds?

@geerlingguy very weird, I did as you said, and now it provisioned fine. Do you have any idea why the composer update wouldn't have worked as expected?

@jesrig - I'm wondering if there might be some other file somewhere that's overridden or maybe a Vagrantfile.local that snuck in and did something that's not tracked through the Composer update...
Is it possible to do a diff of the new Drupal VM directory and the one in the composer project, and see if there are any major changes? (Maybe download Drupal VM 3.5.2 to do the diff).

@geerlingguy
A few things I'm noticing which did not exist before I manually downloaded:
docs/other/php.md
.git/.github
tests/ubuntu-16-php56.config.yml

This was a strange one... and when I updated from Drupal VM 3.5 to 4.0 on a couple of my projects, it seemed to work okay. I'm going to chalk it up to strange Composer behavior, and hopefully it doesn't happen again!
Please let me know if there's anything else related to this that's going wrong, otherwise I'll close this issue as resolved.


Nitcorn PUT

This PR does two things:

The first, maybe controversial, but I removed the warning printed by nitcorn on bad post format. The reason is, I am posting a lot of raw json object to my APIs (like github and other APIs work) and I'm getting this warning a lot.

The right thing to do should be to check the format depending on the request type. But the code seem old, I'm not sure I want to rewrite it.

Second thing: parsing body when receiving PUT requests.

Review: @xymus

+1 on the OO part of the code :p

👍

ping @xymus

+1

All the post format errors that you got... were they invalid requests or in a format unsupported by nitcorn?


Dynamically remove lazy addresses

A race condition may record a contract deployed in the same block as lazy: a latter transaction didn't recognize it had a code hash at first. We should dynamically remove it from the list of lazy addresses as:

Some edge cases can make post-processing these hard to be precise.
It incurs avoidable tail latency.

@hai-rise, I would like to address this issue. Could you please provide a brief explanation before I proceed?

@byhashdong The easiest way to reproduce this is to add this:
diff --git a/crates/pevm/src/mv_memory.rs b/crates/pevm/src/mv_memory.rs
index bcb3e29..46e0481 100644
--- a/crates/pevm/src/mv_memory.rs
+++ b/crates/pevm/src/mv_memory.rs
@@ -80,6 +80,10 @@ impl MvMemory {
         }
     }

+    pub(crate) fn is_lazy(&self, address: &Address) -> bool {
+        self.lazy_addresses.lock().unwrap().contains(address)
+    }
+
     // Apply a new pair of read & write sets to the multi-version data structure.
     // Return whether a write occurred to a memory location not written to by
     // the previous incarnation of the same transaction. This determines whether
diff --git a/crates/pevm/src/vm.rs b/crates/pevm/src/vm.rs
index 745130b..d951713 100644
--- a/crates/pevm/src/vm.rs
+++ b/crates/pevm/src/vm.rs
@@ -168,6 +168,9 @@ impl<'a, S: Storage, C: PevmChain> VmDb<'a, S, C> {
             db.is_lazy = db.to_code_hash.is_none()
                 && (vm.mv_memory.data.contains_key(&from_hash)
                     || vm.mv_memory.data.contains_key(&to_hash.unwrap()));
+            if !db.is_lazy && vm.mv_memory.is_lazy(&to) {
+                println!("oh no");
+            }
         }
         Ok(db)
     }

Then run cargo test mainnet_blocks_from_disk -- --nocapture to see the race condition in action.
A naive solution is to add a MvMemory::add_lazy_address function to call when a db.is_lazy is false.
We may need something more sophisticated if that turns out to be too frictional, like making lazy_addresses a RwLock so at least the read check is not locked most of the time.

@hai-rise Thank you for the explanation! I will delve further into it. 😃


Iota does not support 'isabstractmethod' command.

I have code like this:
class IotaAdapter(Adapter):
    client = Iota('https://nodes.devnet.iota.org:443', testnet=True)

Where Adapter is an abstract class. (class Adapter(ABC): [...])
I am getting the error:

iota.api.InvalidCommand: Iota does not support 'isabstractmethod' command.

It works without a problem if I don't inherit from Adapter.
Anyone knows how I can fix this?

Hi @timohe thanks for raising this issue!
Could you confirm which version of Python you are using?

I am using python 3.6.6.
This is the whole thing:
Traceback (most recent call last):
  File "/Users/timo/Documents/repos/bc-interop/venv/lib/python3.6/site-packages/iota/api.py", line 106, in __getattr__
    command_class = self.commands[command]
KeyError: '__isabstractmethod__'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/timo/Documents/repos/bc-interop/adapters/iota_adapter.py", line 10, in <module>
    class IotaAdapter(Adapter):
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/abc.py", line 136, in __new__
    for name, value in namespace.items()
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/abc.py", line 137, in <setcomp>
    if getattr(value, "__isabstractmethod__", False)}
  File "/Users/timo/Documents/repos/bc-interop/venv/lib/python3.6/site-packages/iota/api.py", line 111, in __getattr__
    command = command,
iota.api.InvalidCommand: Iota does not support '__isabstractmethod__' command.

Scheduled for release: v2.0.7


Missing feedback when plugins are not installed with success

When plugins are not successfully installed there is no feedback, it just seams that they were and the provision goes on.
We should at least output a warning with the stderr output

This should be fixed by #51 since we are using shell_out! which will fail/raise on error.


Cirrus: Fail early on CI script unit test

Instead of running this basic checks for almost all tasks, just do them
once at the beginning.
Signed-off-by: Chris Evich<EMAIL_ADDRESS>

/approve

Okay, this seems to be working well.  We now run the CI-related unit-tests during gating only instead of along with every single make localunit run.

/lgtm


Certificate of 'https://docs.dndkit.com' is inconsistent

When attempting to access https://docs.dndkit.com', I have frequently come across the following errors.

Firefox: Error code: SSL_ERROR_BAD_CERT_DOMAIN

Chrome: NET::ERR_CERT_COMMON_NAME_INVALID

In firefox I can "proceed anyway" and access the site, but in chrome I'm unable to.
Thanks!

It happens consistently on multiple devices on my network. However when I am using a VPN the issue goes away, so this may be something happening locally.  Sorry for the confusion.

@clauderic This is happening for me as well.

@clauderic This has been happening on and off for me too:
FF Developer Edition

Chrome

Opened a ticket with Gitbook, we'll see what comes out of it

Still an issue for me:


Auto refresh after changes

like above, Files changed tab shows Refresh after changed branch.
I'd like to refresh automatically after changed branch because I always press down F5 when it shows.

Not a good idea, if I’m on that page I’m looking at the code and I don’t want things to disappear in front of me. GitHub’s solution is right

Yup, close.
because this issue is against rule No. 2


[UXD][AAP-25468] AWX - updates to Hosts & Instance Groups sections buttons and actions

https://issues.redhat.com/browse/AAP-25468
Updates to the Hosts & Instance Groups sections buttons, actions, etc with correct casing/state/wording.

Closing in favor of #2714 as Hosts and Inventories should be lumped together since there may be some overlap


"1920 - present" needs to be changed to "min(yro_best)"

https://github.com/benda18/Rollercoaster_Evolution/blob/6f5e60c3feb5d4477bc152ed30b5842f389e3d36/shiny/rollercoasters/app.R#L110

[ ] 1920 is no longer the default start date.  I think 1880 is the cutoff.
[ ] should be dynamic based on selected data

it works but i don't know how or why


Add argument generator for Presto truncate decimal function

Required by decimal fuzzer test to generate correct argument types for Presto
truncate decimal function following specified constraints. Only the single-arg
truncate function is supported because ArgumentTypeFuzzer can generate argument
types for the two-arg truncate function.
https://github.com/facebookincubator/velox/pull/10217

@mbasmanova Would you help take a review? Thanks.


EFS changes and New runtime changes

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: rajeevr2715:x: serverless-t-mobile-comserverless-t-mobile-com seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Done


Add TRE roles

:white_check_mark: Checklist

[x] This pull request has a meaningful title.
[x] If your changes are not yet ready to merge, you have marked this pull request as a draft pull request.

:ballot_box_with_check: Maintainers' checklist

[x] This pull request has had the appropriate labels assigned
[x] This pull request has been added to the SATRE backlog project board
[x] This pull request has been assigned to one or more maintainers

:arrow_heading_up: Summary
Adds TRE roles based on @machintim and @edwardchalstrey1 suggestions.
Reviewers should:

Suggest additional roles missed
Edit role descriptions and titles suggested by this PR

:closed_umbrella: Related issues
:raising_hand: Acknowledging contributors

[ ] All contributors to this pull request are already named in the table of contributors in the README file.
[ ] The following people should be added to the table of contributors in the README file:

TODO:

[x] Remove "Vulnerability management" re-added on this branch by mistake

Split TRE Operator into deployment and day to day admin roles

Remove ethicist

TRE data role separate from user roles?

Match roles to what we have in the rest of the spec

@sa-tre/spec-maintainers I have made some additional changes including combining/shuffling some of the role categories

Consider changing "Researcher" to "Data Analyst"?

Consider replacing use of "Data Provider" with "Information Asset Owner"

Operator, Developer, Builder

TRE infrastructure roles. Something like "Operator", "Developer", "Builder"?

Data Protection Manager

Basic IG role should cover writing/compiling policy, whereas Quality manager enforces and tracks/audits it

Add auditor to IG roles

I think Data Analyst is too specific as a replacement for Researcher, since the latter includes supervisors/PIs who review a data analyst's work (still inside a TRE) but don't do any analysis. The other new role Data Consumer might be better?


Fix Flow inexact type - bugfix

In some situations, we'd like to pass in an inexact types into the generated functions. However, this throws a Flow error which can be fixed by wrapping types with "readonly": https://github.com/flowtype/flow-bin/issues/125
Without this adjustment, the workarounds are either $FlowFixMe or force casting the input.

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

 All committers have signed the CLA.


Puppeteer with Chrome instead of Chromium ( Zip vs Debian)

Hi,
We would like to use Chrome with Puppeteer instead of Chromium since Chromium requires display server client libraries. We can't deploy those libraries in cloud foundry due to security setup. We can't deploy Chrome debian package again due to same security setup as it will require Sudo and could be deploying libraries at OS level. It would help if we have a self contained Chrome zip file that we can deploy with puppeteer. So is there a Chrome Zip library version available? - Something similar to the Chromium one listed below?
https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/587164/
thanks
Parvathi

So is there a Chrome Zip library version available?

I'm not aware of any. I'd ask on chromium-dev google group, maybe folks over there would be able to help.


moved closure outside of for loop for variable independence.

If you put the createReceiver's .then clause inside the for loop, all the variables used in receiver.on end up with the value of the last partition in the bind clause.
Also, I couldn't get the filterOption to work, so I left it for a later refactor.

Good catch, thanks!


Minimal example configuration

Supersedes https://github.com/scala-native/scala-native-example/pull/2

Depends on https://github.com/scala-native/scala-native/pull/224

Thats nice !


Provide meaningful message when clouddata unreachable

When clouddata.nue.suse.com is unreachable, mkcloud complained in a
confusing way about the fact that the clouddata variable was not set.
Provide a more meaningful error message when this happens.

actually, that test would trigger for a slightly different reason.
That is because clouddata.nue.suse.com. cannot be resolved using public nameservers, so even if you could reach the IP-address, you might see the message, e.g. because your /etc/resolv.conf has nameserver <IP_ADDRESS>
Thus, I would prefer if you could clarify that in the error message text, so that users will get a better pointer at what to check.
and maybe just improve the existing handling in mkcloud-libvirt.sh:350
Is no good doing the check twice.

I updated the error message (and commit message) to reflect bmwiedemann's concern that it suggested that the host was unreachable instead of the hostname not being resolvable via DNS.
Unfortunately making the modification in mkcloud-libvirt.sh (and duplicating that modification in mkcloud-dirmaint.sh) would be too late in the process, since sanity_checks() is invoked well before those scripts come into play.


Allow user to pass in a router component to use

ConnectedRouter and Router do different things, and it should be up to the user which one they'd like to use -- react-router-dom/Router or ConnectedRouter from react-router-redux

Issue raised when resolving the redux store issue in #1

This issue is out-of-date and conflicts with #2


Add docs about quickstart demo

What is the purpose of the change
(For example: This pull request makes user can stop workflow externally.)
Brief change log
(for example:)

Send StopDagEvent to Airflow scheduler via notification service
Once received StopDagEvent, Airflow scheduler kills all running dag runs

Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests.

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@5838786). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             dev     #360   +/-   ##
======================================
  Coverage       ?   68.92%
======================================
  Files          ?      159
  Lines          ?     9391
  Branches       ?     1236
======================================
  Hits           ?     6473
  Misses         ?     2609
  Partials       ?      309

Continue to review full report at Codecov.

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


Support for CIFAR-100

Summary

Added support for CIFAR-100

How to test

Checklist

[x] I submit my changes into the develop branch
[ ] I have added description of my changes into CHANGELOG
[ ] I have updated the documentation accordingly
[x] I have added tests to cover my changes
[ ] I have linked related issues

License

[ ] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.
[ ] I have updated the license header for each file (see an example below)

# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT

I see two options for presenting CIFAR-100:

As it is now. But because the file with labels isn't sorted, the class doesn't match the superclass (the label doesn't store its own superclass).
Add to the format the parameters of what type of labels to use: fine, coarse, fine and coarse. If we use fine or coarse, then there will be one label for each item. If we use fine and coarse, then there will be two labels for each item. Then we should probably separate CIFAR-10 and CIFAR-100.

Please update the format docs.

Added documentation for Cifar.

There is still no information about differences between 10 and 100 versions and how to export in a specific version.

There is still no information about differences between 10 and 100 versions and how to export in a specific version.

Fixed.


Allow    call Syntax

IIRC, Scala allows you to write <expr> <identifier> <expr> to denote <expr>.<identifier>(<expr>).
With support for this, #17 would be easy to solve. Just have using RaxeWords with this:
extern class RaxeWords {
   static public inline function and(a:Bool, b:Bool):Bool return a && b;
   static public inline function or(a:Bool, b:Bool):Bool return a || b;
   static public inline function is<T>(a:A, b:A):Bool return a == b;
}

And there you go: foo and bar becomes foo.and(bar) which is turned to foo && bar. Whether or not RaxeWords is used in every file is a matter of taste.

This is nice addition and I really like it. But it do not goes well with Raxe philisophy No runtime library requirement.

I don't understand.

The syntax in general has nothing to do with any library whatsoever. It is just an alternative syntax for calls with a single argument.
Using this to implement and and or does not require a "runtime library". The RaxeWords class is a pure compile time construct.

I mean that right now, when you compile Raxe to Haxe, you can even run it from try.haxe.org if you are not using any external libraries. So compiled Raxe source do not need any external library right now.

So it will after implementing this proposal, at least that's how I
understand it, as syntactic sugar.
Tomas Slusny<EMAIL_ADDRESS>schrieb am Do., 08.10.2015, 23:15:

I mean that right now, when you compile Raxe to Haxe, you can even run it
from try.haxe.org if you are not using any external libraries. So
compiled Raxe source do not need any external library right now.
—
Reply to this email directly or view it on GitHub
https://github.com/nondev/raxe/issues/20#issuecomment-146688348.

that would be very pleasing!
And of course, not runtime lib required, it's compile time resolution :)

How will the parser know what to do?
I agree it is nice to define prefix, infix, or postfix style functions.
foo and bar
=> foo.and.bar ?
=> foo(and(bar)) ?
=> foo.and(bar) ?
maybe others, how will it know which to choose?
def infix and (foo, bar)
may work and be more explicit about what you're trying to do. so no guesses.
but then parser will have to have lists of functions, number of arguments, and the way they're meant to be used. In other words, it needs to understand some of the code.
I think that right now, it's just a syntax replacement in parser level.
though maybe that's the next stage

I think this kind of complicates things and is not quite what I have proposed. Both of these are prefix functions:
foo.and(bar)
foo and bar

The latter is just a different notation for the same thing, to avoid death by parentheses. If any ambiguity is introduced, it is in cases like foo and bar or baz, which could mean foo.and(bar.or(baz)) or foo.and(bar).or(baz). I think we should shamelessly steal from Scala here. Any insights @sledorze might be able to share?

@deathbeam @back2dos
maybe this would shed some lights:
http://stackoverflow.com/questions/5592642/when-to-use-parenthesis-in-scala-infix-notation/5597154#5597154


[BUG] Docs: missing parameter for login_with_oauth in wiki

Describe the bug
The wiki mentions that we should call
Firebase.Auth.login_with_oauth(oath_token)
when we login with OAuth manually. However, the code  requires additional provider: AuthProvider argument for the function call:
func login_with_oauth(_token: String, provider: AuthProvider) -> void:
It seems that the second argument is missing from the wiki.

@jlundan thanks for finding this. I am going to be combing the wiki next week and will make sure to add this change to it. I will let you know when it is updated

Did it like this now:
var google_provider = get_GoogleProvider()
login_with_oauth(token, google_provider)

Which probably isn't the optimal way, but works for me until the docs are fixed


Traditional New Relic Usage

Does the traditional way of using New Relic work or do we have to use their new distributed tracing tools?

This is likely not going to happen. After talking to Adam Johnson the emphasis will be on smaller instrumentation with Ruby falling second to Node. No work is being done to hack traditional APM into Lambda because the cardinality and sampling of the events might be an issue. Maybe one day I can hack that up or maybe the new way is better with XRay (if they ever get more work done in it). Still feels like a big lack of visibility and a lot of manual cooking when running traditional applications in Lambda.


show how to create a nine slice with basic canvas api

The idea here is to show how to use the basic canvas api functionality to create your own nine slice images.

Code is ready and added to repo. Need to create video based on the content.

0:00 - Intro
1:01 - Review nine slice scaling technique
2:35 - Links to starter code
3:00 - Review starter code
3:33 - Link to video on drawing images
3:46 - Code start
7:39 - Define nine image part dimensions
13:12 -


OKE OSS release v1.27.2

Change Log:

NSG rule management for CCM loadbalancers and respective e2e tests
Add validation if loadbalancer subnets are empty and new unit test cases
Bug fix for topology collision error in CSI node driver
Bug fixes and follow-up improvements for the NSG rule management feature
CSI controller GRPCs now use parent contexts, new unit tests and logging improvements
Updated timeouts for CSI ControllerPublish/ControllerUnpublish/ControllerExpand calls
Fix for FSS controller nil pointer reference causing panic
Enabling static FSS Intransit encryption Tests for ARM
Support UHP volumes
CVE fixes
E2E and other doc updates

E2E results:
FOCUS=[cloudprovider]

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

-1671 of 2096 (20.28%)  changed or added relevant lines in 27 files are covered.
13 unchanged lines in 5 files lost coverage.
Overall coverage increased (+1.6%) to 30.875%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/oci/client/utils.go
0
1
0.0%

pkg/cloudprovider/providers/oci/instances.go
5
7
71.43%

pkg/csi-util/utils.go
0
2
0.0%

pkg/cloudprovider/providers/oci/load_balancer_security_lists.go
0
3
0.0%

pkg/csi/driver/fss_node.go
0
3
0.0%

pkg/csi/driver/fss_controller.go
9
16
56.25%

pkg/oci/client/client.go
0
8
0.0%

pkg/flexvolume/block/driver.go
0
13
0.0%

pkg/cloudprovider/providers/oci/load_balancer_spec.go
114
134
85.07%

pkg/cloudprovider/providers/oci/load_balancer_util.go
2
26
7.69%

Files with Coverage Reduction
New Missed Lines
%

pkg/cloudprovider/providers/oci/load_balancer_util.go
1
84.13%

pkg/csi/driver/fss_node.go
1
0.0%

pkg/flexvolume/block/driver.go
1
6.9%

pkg/csi/driver/bv_node.go
4
2.13%

pkg/cloudprovider/providers/oci/load_balancer.go
6
26.83%

Totals

Change from base Build<PHONE_NUMBER>:
1.6%

Covered Lines:
3923

Relevant Lines:
12706

💛  - Coveralls


[R] Drop renv-defined library from R projects

Renv can be used to manage the environment for R projects. The ./renv/library directory that is produced when working with renv should not typically be added to version control.
Please see: https://rstudio.github.io/renv/articles/renv.html#infrastructure-1
Reasons for making this change:
This removes the local library directory generated by the R-specific env-management tool 'renv'.
Links to documentation supporting these rule changes:
https://rstudio.github.io/renv/articles/renv.html#infrastructure-1

Sorry, just realised that renv adds it's own .gitignore into the ./renv/ directory. This changeset is of no value.


Explain Solidity assert() and require() in

the contribution guide.
this closes #887.

Thank you!


Added padding between avatar and titles in toolbar #983

Fixing  #983, where there was previously no space between the icon and titles.
Added 8dp padding between the avatar and the titles in Toolbar.
Previously:

Now:

One nit, rest looks good!

Oh right, didn't see that. I will revert it and update tomorrow, thanks!

The problem was actually that material dialogs resolved the new Support Library version 23.2.0, which started using vector resources and removed the abc_ic_menu_share_mtrl_alpha resource, replaced by vector resource abc_ic_menu_share_material.
More info:
http://android-developers.blogspot.cz/2016/02/android-support-library-232.html
http://stackoverflow.com/questions/35628572/update-support-library-23-2-0-build-bug/35628668

Thanks!


Software images

Added images for each piece of software. If you want to show software visually on the site

There was no intention, at least from my side, to use images for the list of software, I don't see a reason why to add them now without having a proper layout first.


Add single player mode

Single player mode
Function paddle_cpu:
-move paddle 2 following the ball
Modified menu.lua:
-add previous_state to save previous state before pause
-function menu.change_state save state on previous_state if is not 'pause'
Modified menu-pause:
-on menu pause options  resume pass previous_state to return the previous game

Very nice! I moved the cpu logic to the paddle module. Its movement is still as flawless as before lol. Even for a future "hard mode", we'll probably want a less robotic/predictable movement. Tweaking this will be fun.


grpc:  support rlimits

specconv.CreateLibcontainerConfig returns a configuration without rlimits,
because it can't convert posixRlimits to Rlimits.
Convert posixRlimits to Rlimits and set rlimits in libcontainer configuration
before finishing container creation.
fixes #430
fixes github.com/kata-containers/runtime#913
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

/test

@bergwolf @sboeuf  take a look.

lgtm


Big Rename (again...)

I think we all know what this is about

There's a weird build fail with somethingsomething sourcelink. Not sure where that came from

Hm some weird automatically generated thing in the csproj. Fixed now.

Seems like unit tests are not running, so need to fix that little thing

All good now 😌

well done)

DNM until I get a response on the fact that we can use this name and I can get that GH action to work properly


Gapless playback

With all the new progress on the Librespot front, I'd thought i'd point this out once again.
It would still be nice to have gapless playback available.
I know it has been requiested before
https://github.com/plietar/librespot/issues/18
But was there ever any progress on this?
Cheers, and happy listening!

No progress on it afaik, unless Paul implemented it in the v0.2 branch. I agree it would be nice to have. In the meantime, I think we should track the preload/gapless requests as one issue, here: #21. Closing this in the meantime as a dupe.


Added a License Header to README.md.

License Header which is common in all Microsoft Project Repositories.

Thank you ❤

Thank you so much for merging the changes. This is my first pull request on a Microsoft Repo. I'm so glad and excited that you approved my changes. I would love to contribute more. I'll try to work on something more towards programming than docs next time. 😊


Fix payload missing 0

The qr-code value was missing a trailing 0

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

Fast-tracking documentation fix.


how to build valid dataset

I made a pile dataset, but how to divide the valid dataset. For my self-made validation set, I always get the error "Is a directory: '/home/mdz/pywork/LongMem/pile_preprocessed_binary/valid'

Can you provide more details to let me reproduce the error?

I suggest that I have solved your problem.
I try to generate a custom dataset following the  format that the author given.However when I try to train a LongMem model.I meet an error "Is a directory: 'XXX/longmem/valid' ".**I think the reason is that when the author writes the code, the version of fairseq is low, and valid and test binaries are not required to run.**Up to now,I run this code by the fairseq version is 0.12 and you need to find the code under the fairseq subfolder like "xxx/longmem/fairseq/fairseq_cli/train.py" and just comment the code
    # Load valid dataset (we load training data below, based on the latest checkpoint)
    # We load the valid dataset AFTER building the model
    data_utils.raise_if_valid_subsets_unintentionally_ignored(cfg)
    if cfg.dataset.combine_valid_subsets:
        task.load_dataset("valid", combine=True, epoch=1)
    else:
        for valid_sub_split in cfg.dataset.valid_subset.split(","):
            task.load_dataset(valid_sub_split, combine=False, epoch=1)

In the official code,It's on lines 128 through 123.


Type command not accepted as a valid command

Currently, the type command is not accepted as a valid command. As a confirmation, I checked the source code and noticed that the TypePropertyCommand is not accounted for in CondoneryParser. Perhaps previously, some code got lost when fixing merge conflicts.
We should fix this since the type command is a feature that had already been implemented in v1.3.
Screenshot:

yes this has been fixed in #208


for javascript calling python, return promises that support catch

The ability to call in to python works great, but I find myself having to put try/except wrappers around everything and then the return codes also have to return status and exception information.
Perhaps an API where a true promise was returned (vs. passing in a callback) so that the result and catch can be handled depending on if an error occurred.

Trying to link merge request #294


Add "Generate Unreal Visual Studio Project Files" toolbar button

It's necessary to re-generate Visual Studio project files time to time when files changes outside visual studio. One frequent use case is needing to do this after pulling latest changes from Git. I usually navigate to the folder in the file explorer and use the context menu there. This is much more cumbersome than having the same ability inside Visual Studio.
Since FUnreal already got the ability to generate these, I believe providing a toolbar button to do that is a useful thing.

Hi @madhurajith, thanks for your contribution.
By now, I'll delay the merge of this feature, because I'm working on a feature that will add FUnreal Menu (and eventually toolbar) on VS.
I'll take into account your request.  See ticket #29

Thanks @fdefelici, looking forward to it.

@madhurajith, I have updated ticket #29 describing the solution adopted (compliant with next release of v0.2.0, in terms of menu organization).  It should suite your needs as well. If you have any feedback let me know.
By now, I'm going to close this PR. Thanks again.

@fdefelici This is great. Looking forward to it. Thanks.


AVRO-2547: Add bzip2 support to the Perl bindings

Make sure you have checked all steps below.
Jira

[x] My PR addresses the following Avro Jira issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"

https://issues.apache.org/jira/browse/AVRO-2547
In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

I updated lang/perl/t/04_datafile.t to add a test for the bzip2 codec.
Commits

[x] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[x] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain Javadoc that explain what it does

Tests failed, because this depends on #638

Exactly, I'll rerun the CI once #638 is merged. Thanks for the comment!

@sekikn can you rebase? :-)

Sure, thanks for merging #638!


Unwanted behavior on overscroll

Repro

open iOS demo App
go to custom keyboard "show1" or "show2"
over scroll down

Actual

keyboard resets and I loose my touch event on the the scrollview

Expected

behavior when doing the same repro case while the native keyboard is shown.

Yup that's a bug.
Notice that the demo app uses the revealKeyboardInteractive flag on KeyboardAccessoryView. This is a fun feature that lets you drag the scroll to open the keyboard. In case the keyboard is already open and you perform the drag, the native code still tries to apply this behavior which causes the input to gain focus and reset the keyboard.
I'll push a fix, thanks.

this is fixed with react-native-keyboard-tracking-view version 3.0.9


add firebase redirects to handle older paths

add firebase redirects to handle older paths
related to https://github.com/dart-lang/dart-pad/issues/2794

I have not tested these myself but suspect this is in-line w/ what we'd want to do

[x] I’ve reviewed the contributor guide and applied the relevant portions to this PR.

Contribution guidelines:

See our contributor guide for general expectations for PRs.
Larger or significant changes should be discussed in an issue before creating a PR.
Contributions to our repos should follow the Dart style guide and use dart format.
Most changes should add an entry to the changelog and may need to rev the pubspec package version.
Changes to packages require corresponding tests.

Note that many Dart repos have a weekly cadence for reviewing PRs - please allow for some latency before initial review feedback.

I made some additional changes and went ahead and staged this here: https://sketch-pad-1cebb--embed-redirects-8y20kzbs.web.app
We should be OK to merge this since this only applies to preview.dartpad.dev right now.
@devoncarew @parlough PTAL

I made some additional changes and went ahead and staged this here: https://sketch-pad-1cebb--embed-redirects-8y20kzbs.web.app

Thanks for the updates to this PR! changes lgtm


cpSpacePointQuery and cpSpacePointQueryNearest treat sensors differently

A user of pymunk made me aware that cpSpacePointQuery and cpSpacePointQueryNearest treats sensor shapes differently. The *Nearest version ignore senor shapes while the other does not. It seems a bit inconsistent and confusing. (The code itself is clear so I dont really know if this is a bug or a feature)
https://github.com/viblo/pymunk/issues/113

Sorry for the long hiatus.
I guess I never really intended either to work with sensors, since their purpose is to trigger when things intersect them only. I'm slightly hesitant to change it after so long, but I guess I'll disable it for cpSpacePointQuery() too.

Err, jeez. After looking closer, cpSpacePointQueryNearest() is the only query function that ignores sensors. I'll have to think about this.

:)
I can see the point about not breaking anything, but also about making it more consistent.. Not easy what to pick


Adding two new parameters to teleportation

Time to teleport start - if using the mainn component only, it is possible to delay the start of the teleportation ray, so a standard press won't automatically trigger it.
blockAllPickableMeshes - If enabled this will allow all pickable meshes in the scene to be teleportation blockers. This is off per default for performance reasons.

Partly from https://forum.babylonjs.com/t/teleportation-activates-when-pinching-a-non-floor-mesh-with-a-hand/48443

Snapshot stored with reference name:
refs/pull/14840/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14840/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14840/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14840/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14840/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14840/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14840/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14840/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14840/merge/testResults/webgl2playwright/index.html

test playground:
https://playground.babylonjs.com/?snapshot=refs/pull/14840/merge#B8D5Z6#142

timeToTeleportStart is very useful, I think. I say it needs a lot more explanation of what it does in a comment (maybe a better name, too, but nothing comes to mind just yet, it's late here..) in order for most people who are not already familiar with the intention here to understand. timeToTeleport (and many many many other places in BJS code, sadly, but that's another story) can also use more explanation to be clear to most people, I think.
With blockAllPickableMeshes, I like the intention, but it looks inflexible. why specifically "pickable"? what if I need a different criteria? e.g. all meshes or all visible meshes or all except some "transparent" meshes or whatever it may be...
What do you think about removing blockAllPickableMeshes before it's too late and replacing it with a predicate? so the user can specify any arbitrary condition they'd like. pickBlockerMeshes can be deprecated in favor of the new predicate, too.

jsDoc for the predicate option can quote an example code for a common use like "any mesh that is pickable, visible and enabled" or something like that

jsDoc for the predicate option can quote an example code for a common use like "any mesh that is pickable, visible and enabled" or something like that

This addresses your comments - https://github.com/BabylonJS/Babylon.js/pull/14850

This addresses your comments - #14850

I love that one, thank you! Didn't test that one yet, but I will soon and let you know if something comes up.

One thing regarding timeToTeleportStart after this PR that I noticed and forgot to mention in my earlier comment:
With timeToTeleportStart: 1000 as in the testing PG, repeatedly quickly pinching a floor makes the teleportation target appearing and disappearing in funny ways, predictably.
Not sure how severe an issue this is, but here you go.


Whimpering Face emoji

Wechat/QQ #359 have a Whimper or Whine or Pule emoticon for ASCII #293 8* that has no good equivalent among existing Unicode emojis.

Viber #403 has a similar but happier Teary emoticon:

The closest emoticons Emoji Request offers to vote on, are called Happy Crying Face and Face with Puppy Eyes:

Unicode 11.0 will probably bring FACE WITH PLEADING EYES at U+1F97A 🥺, also known as pleading face, begging face or face with puppy eyes, cf. Emojipedia.
Compare #374 for a Tearing-up Face.
Proposals

L2/17-244 with supporting data in L2/17-245 assembled by ESC / Tayfun Karadeniz of Emoji Xpress for the Emoji Subcommittee

🥺 Pleading Face


windows test

https://github.com/patrick-steele-idem/child-process-promise/issues/8
npm run test is failing on windows machines.
maybe need to make PR.

2588f7014c2b19648226de873c219f4be1765a54


Add Stroomprijs for all Dutch providers

Add another tariff provider
Ideally I would like to have the enever as a tarif supplier as you do not need support for every single provider. Together with their token you get all Dutch providers. Need to filter them on the the used supplier. I have add their abbreviations.
So as a setting, provide the token and the abbreviation of the supplier. Then EVCC can findout the tariffs.
Price Today
https://enever.nl/api/stroomprijs_vandaag.php?token=YOUR_TOKEN
Price tomorrow
https://enever.nl/api/stroomprijs_morgen.php?token=YOUR_TOKEN
These are the abbr. of the suppliers:
AA = Atoom Alliantie
AIP = All in power
ANWB = ANWB Energie
BE = Budget Energie
EE = EasyEnergy
EN = Eneco
EVO = Energie van Ons
EZ = Energy Zero
FR = Frank Energie
GSL = Groenestroom Lokaal
MDE = Mijndomein Energie
NE = NextEnergy
TI = Tibber
VDB = Vandebron
VON = Vrij op naam
WE = Wout Energie
ZG = ZonderGas
ZP = Zonneplan

This is what you get, for every hour, and the supplier, prijsAA  means Atoom Alliantie.
{"status":"true","data":[{"datum":"2024-11-28 00:00:00","prijs":"0.050100","prijsAA":"0.213471","prijsAIP":"0.222521","prijsANWB":"0.240671","prijsBE":"0.213261","prijsEE":"0.219121","prijsEN":"0.215661","prijsEVO":"0.240671","prijsEZ":"0.242271","prijsFR":"0.210471","prijsGSL":"0.240671","prijsMDE":"0.240671","prijsNE":"0.212171","prijsTI":"0.214051","prijsVDB":"0.214151","prijsVON":"0.212271","prijsWE":"0.217671","prijsZG":"0.240671","prijsZP":"0.212271"},{"datum":"2024-11-28 01:00:00","prijs":"0.041210","prijsAA":"0.202714","prijsAIP":"0.211764","prijsANWB":"0.229914","prijsBE":"0.202504","prijsEE":"0.208364","prijsEN":"0.204904","prijsEVO":"0.229914","prijsEZ":"0.231514","prijsFR":"0.199714","prijsGSL":"0.229914","prijsMDE":"0.229914","prijsNE":"0.201414","prijsTI":"0.203294","prijsVDB":"0.203394","prijsVON":"0.201514","prijsWE":"0.206914","prijsZG":"0.229914","prijsZP":"0.201514"},{"datum":"2024-11-28 02:00:00","prijs":"0.035130","prijsAA":"0.195357","prijsAIP":"0.204407","prijsANWB":"0.222557","prijsBE":"0.195147","prijsEE":"0.201007","prijsEN":"0.197547","prijsEVO":"0.222557","prijsEZ":"0.224157","prijsFR":"0.192357","prijsGSL":"0.222557","prijsMDE":"0.222557","prijsNE":"0.194057","prijsTI":"0.195937","prijsVDB":"0.196037","prijsVON":"0.194157","prijsWE":"0.199557","prijsZG":"0.222557","prijsZP":"0.194157"},{"datum":"2024-11-28 03:00:00","prijs":"0.038000","prijsAA":"0.198830","prijsAIP":"0.207880","prijsANWB":"0.226030","prijsBE":"0.198620","prijsEE":"0.204480","prijsEN":"0.201020","prijsEVO":"0.226030","prijsEZ":"0.227630","prijsFR":"0.195830","prijsGSL":"0.226030","prijsMDE":"0.226030","prijsNE":"0.197530","prijsTI":"0.199410","prijsVDB":"0.199510","prijsVON":"0.197630","prijsWE":"0.203030","prijsZG":"0.226030","prijsZP":"0.197630"},{"datum":"2024-11-28 04:00:00","prijs":"0.059900","prijsAA":"0.225329","prijsAIP":"0.234379","prijsANWB":"0.252529","prijsBE":"0.225119","prijsEE":"0.230979","prijsEN":"0.227519","prijsEVO":"0.252529","prijsEZ":"0.254129","prijsFR":"0.222329","prijsGSL":"0.252529","prijsMDE":"0.252529","prijsNE":"0.224029","prijsTI":"0.225909","prijsVDB":"0.226009","prijsVON":"0.224129","prijsWE":"0.229529","prijsZG":"0.252529","prijsZP":"0.224129"},{"datum":"2024-11-28 05:00:00","prijs":"0.092040","prijsAA":"0.264218","prijsAIP":"0.273268","prijsANWB":"0.291418","prijsBE":"0.264008","prijsEE":"0.269868","prijsEN":"0.266408","prijsEVO":"0.291418","prijsEZ":"0.293018","prijsFR":"0.261218","prijsGSL":"0.291418","prijsMDE":"0.291418","prijsNE":"0.262918","prijsTI":"0.264798","prijsVDB":"0.264898","prijsVON":"0.263018","prijsWE":"0.268418","prijsZG":"0.291418","prijsZP":"0.263018"},{"datum":"2024-11-28 06:00:00","prijs":"0.100100","prijsAA":"0.273971","prijsAIP":"0.283021","prijsANWB":"0.301171","prijsBE":"0.273761","prijsEE":"0.279621","prijsEN":"0.276161","prijsEVO":"0.301171","prijsEZ":"0.302771","prijsFR":"0.270971","prijsGSL":"0.301171","prijsMDE":"0.301171","prijsNE":"0.272671","prijsTI":"0.274551","prijsVDB":"0.274651","prijsVON":"0.272771","prijsWE":"0.278171","prijsZG":"0.301171","prijsZP":"0.272771"},{"datum":"2024-11-28 07:00:00","prijs":"0.132100","prijsAA":"0.312691","prijsAIP":"0.321741","prijsANWB":"0.339891","prijsBE":"0.312481","prijsEE":"0.318341","prijsEN":"0.314881","prijsEVO":"0.339891","prijsEZ":"0.341491","prijsFR":"0.309691","prijsGSL":"0.339891","prijsMDE":"0.339891","prijsNE":"0.311391","prijsTI":"0.313271","prijsVDB":"0.313371","prijsVON":"0.311491","prijsWE":"0.316891","prijsZG":"0.339891","prijsZP":"0.311491"},{"datum":"2024-11-28 08:00:00","prijs":"0.148290","prijsAA":"0.332281","prijsAIP":"0.341331","prijsANWB":"0.359481","prijsBE":"0.332071","prijsEE":"0.337931","prijsEN":"0.334471","prijsEVO":"0.359481","prijsEZ":"0.361081","prijsFR":"0.329281","prijsGSL":"0.359481","prijsMDE":"0.359481","prijsNE":"0.330981","prijsTI":"0.332861","prijsVDB":"0.332961","prijsVON":"0.331081","prijsWE":"0.336481","prijsZG":"0.359481","prijsZP":"0.331081"},{"datum":"2024-11-28 09:00:00","prijs":"0.140360","prijsAA":"0.322686","prijsAIP":"0.331736","prijsANWB":"0.349886","prijsBE":"0.322476","prijsEE":"0.328336","prijsEN":"0.324876","prijsEVO":"0.349886","prijsEZ":"0.351486","prijsFR":"0.319686","prijsGSL":"0.349886","prijsMDE":"0.349886","prijsNE":"0.321386","prijsTI":"0.323266","prijsVDB":"0.323366","prijsVON":"0.321486","prijsWE":"0.326886","prijsZG":"0.349886","prijsZP":"0.321486"},{"datum":"2024-11-28 10:00:00","prijs":"0.099010","prijsAA":"0.272652","prijsAIP":"0.281702","prijsANWB":"0.299852","prijsBE":"0.272442","prijsEE":"0.278302","prijsEN":"0.274842","prijsEVO":"0.299852","prijsEZ":"0.301452","prijsFR":"0.269652","prijsGSL":"0.299852","prijsMDE":"0.299852","prijsNE":"0.271352","prijsTI":"0.273232","prijsVDB":"0.273332","prijsVON":"0.271452","prijsWE":"0.276852","prijsZG":"0.299852","prijsZP":"0.271452"},{"datum":"2024-11-28 11:00:00","prijs":"0.098700","prijsAA":"0.272277","prijsAIP":"0.281327","prijsANWB":"0.299477","prijsBE":"0.272067","prijsEE":"0.277927","prijsEN":"0.274467","prijsEVO":"0.299477","prijsEZ":"0.301077","prijsFR":"0.269277","prijsGSL":"0.299477","prijsMDE":"0.299477","prijsNE":"0.270977","prijsTI":"0.272857","prijsVDB":"0.272957","prijsVON":"0.271077","prijsWE":"0.276477","prijsZG":"0.299477","prijsZP":"0.271077"},{"datum":"2024-11-28 12:00:00","prijs":"0.096160","prijsAA":"0.269204","prijsAIP":"0.278254","prijsANWB":"0.296404","prijsBE":"0.268994","prijsEE":"0.274854","prijsEN":"0.271394","prijsEVO":"0.296404","prijsEZ":"0.298004","prijsFR":"0.266204","prijsGSL":"0.296404","prijsMDE":"0.296404","prijsNE":"0.267904","prijsTI":"0.269784","prijsVDB":"0.269884","prijsVON":"0.268004","prijsWE":"0.273404","prijsZG":"0.296404","prijsZP":"0.268004"},{"datum":"2024-11-28 13:00:00","prijs":"0.098990","prijsAA":"0.272628","prijsAIP":"0.281678","prijsANWB":"0.299828","prijsBE":"0.272418","prijsEE":"0.278278","prijsEN":"0.274818","prijsEVO":"0.299828","prijsEZ":"0.301428","prijsFR":"0.269628","prijsGSL":"0.299828","prijsMDE":"0.299828","prijsNE":"0.271328","prijsTI":"0.273208","prijsVDB":"0.273308","prijsVON":"0.271428","prijsWE":"0.276828","prijsZG":"0.299828","prijsZP":"0.271428"},{"datum":"2024-11-28 14:00:00","prijs":"0.114400","prijsAA":"0.291274","prijsAIP":"0.300324","prijsANWB":"0.318474","prijsBE":"0.291064","prijsEE":"0.296924","prijsEN":"0.293464","prijsEVO":"0.318474","prijsEZ":"0.320074","prijsFR":"0.288274","prijsGSL":"0.318474","prijsMDE":"0.318474","prijsNE":"0.289974","prijsTI":"0.291854","prijsVDB":"0.291954","prijsVON":"0.290074","prijsWE":"0.295474","prijsZG":"0.318474","prijsZP":"0.290074"},{"datum":"2024-11-28 15:00:00","prijs":"0.118800","prijsAA":"0.296598","prijsAIP":"0.305648","prijsANWB":"0.323798","prijsBE":"0.296388","prijsEE":"0.302248","prijsEN":"0.298788","prijsEVO":"0.323798","prijsEZ":"0.325398","prijsFR":"0.293598","prijsGSL":"0.323798","prijsMDE":"0.323798","prijsNE":"0.295298","prijsTI":"0.297178","prijsVDB":"0.297278","prijsVON":"0.295398","prijsWE":"0.300798","prijsZG":"0.323798","prijsZP":"0.295398"},{"datum":"2024-11-28 16:00:00","prijs":"0.133930","prijsAA":"0.314905","prijsAIP":"0.323955","prijsANWB":"0.342105","prijsBE":"0.314695","prijsEE":"0.320555","prijsEN":"0.317095","prijsEVO":"0.342105","prijsEZ":"0.343705","prijsFR":"0.311905","prijsGSL":"0.342105","prijsMDE":"0.342105","prijsNE":"0.313605","prijsTI":"0.315485","prijsVDB":"0.315585","prijsVON":"0.313705","prijsWE":"0.319105","prijsZG":"0.342105","prijsZP":"0.313705"},{"datum":"2024-11-28 17:00:00","prijs":"0.151000","prijsAA":"0.335560","prijsAIP":"0.344610","prijsANWB":"0.362760","prijsBE":"0.335350","prijsEE":"0.341210","prijsEN":"0.337750","prijsEVO":"0.362760","prijsEZ":"0.364360","prijsFR":"0.332560","prijsGSL":"0.362760","prijsMDE":"0.362760","prijsNE":"0.334260","prijsTI":"0.336140","prijsVDB":"0.336240","prijsVON":"0.334360","prijsWE":"0.339760","prijsZG":"0.362760","prijsZP":"0.334360"},{"datum":"2024-11-28 18:00:00","prijs":"0.158240","prijsAA":"0.344320","prijsAIP":"0.353370","prijsANWB":"0.371520","prijsBE":"0.344110","prijsEE":"0.349970","prijsEN":"0.346510","prijsEVO":"0.371520","prijsEZ":"0.373120","prijsFR":"0.341320","prijsGSL":"0.371520","prijsMDE":"0.371520","prijsNE":"0.343020","prijsTI":"0.344900","prijsVDB":"0.345000","prijsVON":"0.343120","prijsWE":"0.348520","prijsZG":"0.371520","prijsZP":"0.343120"},{"datum":"2024-11-28 19:00:00","prijs":"0.154040","prijsAA":"0.339238","prijsAIP":"0.348288","prijsANWB":"0.366438","prijsBE":"0.339028","prijsEE":"0.344888","prijsEN":"0.341428","prijsEVO":"0.366438","prijsEZ":"0.368038","prijsFR":"0.336238","prijsGSL":"0.366438","prijsMDE":"0.366438","prijsNE":"0.337938","prijsTI":"0.339818","prijsVDB":"0.339918","prijsVON":"0.338038","prijsWE":"0.343438","prijsZG":"0.366438","prijsZP":"0.338038"},{"datum":"2024-11-28 20:00:00","prijs":"0.143390","prijsAA":"0.326352","prijsAIP":"0.335402","prijsANWB":"0.353552","prijsBE":"0.326142","prijsEE":"0.332002","prijsEN":"0.328542","prijsEVO":"0.353552","prijsEZ":"0.355152","prijsFR":"0.323352","prijsGSL":"0.353552","prijsMDE":"0.353552","prijsNE":"0.325052","prijsTI":"0.326932","prijsVDB":"0.327032","prijsVON":"0.325152","prijsWE":"0.330552","prijsZG":"0.353552","prijsZP":"0.325152"},{"datum":"2024-11-28 21:00:00","prijs":"0.131260","prijsAA":"0.311675","prijsAIP":"0.320725","prijsANWB":"0.338875","prijsBE":"0.311465","prijsEE":"0.317325","prijsEN":"0.313865","prijsEVO":"0.338875","prijsEZ":"0.340475","prijsFR":"0.308675","prijsGSL":"0.338875","prijsMDE":"0.338875","prijsNE":"0.310375","prijsTI":"0.312255","prijsVDB":"0.312355","prijsVON":"0.310475","prijsWE":"0.315875","prijsZG":"0.338875","prijsZP":"0.310475"},{"datum":"2024-11-28 22:00:00","prijs":"0.122160","prijsAA":"0.300664","prijsAIP":"0.309714","prijsANWB":"0.327864","prijsBE":"0.300454","prijsEE":"0.306314","prijsEN":"0.302854","prijsEVO":"0.327864","prijsEZ":"0.329464","prijsFR":"0.297664","prijsGSL":"0.327864","prijsMDE":"0.327864","prijsNE":"0.299364","prijsTI":"0.301244","prijsVDB":"0.301344","prijsVON":"0.299464","prijsWE":"0.304864","prijsZG":"0.327864","prijsZP":"0.299464"},{"datum":"2024-11-28 23:00:00","prijs":"0.112600","prijsAA":"0.289096","prijsAIP":"0.298146","prijsANWB":"0.316296","prijsBE":"0.288886","prijsEE":"0.294746","prijsEN":"0.291286","prijsEVO":"0.316296","prijsEZ":"0.317896","prijsFR":"0.286096","prijsGSL":"0.316296","prijsMDE":"0.316296","prijsNE":"0.287796","prijsTI":"0.289676","prijsVDB":"0.289776","prijsVON":"0.287896","prijsWE":"0.293296","prijsZG":"0.316296","prijsZP":"0.287896"}],"code":"5"}

Happy to take a pr

Maybe it already possible with the custom http. But I am not the familiar. This is what I get back when sending the request. So maybe with the jq format it can be configured correctly?

How does one signup for the API? Is there a cost?

seems to only require an email and is limited to private use: https://enever.nl/prijzenfeeds/

Sehr cool. Wer möchte es versuchen? Es wäre sinnig, das als N Templates je eins pro Provider zu machen.

I can‘t get data for tomorrow- code 5?

No as a private user not. You have 250 reguest per month. To get the token signup here
https://enever.nl/prijzenfeeds/
Prijzenfeedshttps://enever.nl/prijzenfeeds/
enever.nlhttps://enever.nl/prijzenfeeds/
[favicon.ico]https://enever.nl/prijzenfeeds/
You need one request for today and one for tomorrow. As a supporter you can get 10000 requests. tomorrow prices are available after 15:00 and for sure after 16:00
Regards
Erik Nijeboer
Op 29 nov 2024 om 10:37 heeft andig @.***> het volgende geschreven:

How does one signup for the API? Is there a cost?
—
Reply to this email directly, view it on GitHubhttps://github.com/evcc-io/evcc/issues/17464#issuecomment-2507425645, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ALIVPVTLBJXXPGE43C2HYAL2DAYT3AVCNFSM6AAAAABSTEEWDCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBXGQZDKNRUGU.
You are receiving this because you authored the thread.Message ID: @.***>

The jq part here looks straight forward. I think we'll need to find something that does two HTTP requests. I'll see if we can use https://github.com/evcc-io/evcc/pull/17481 for this purpose.

Have something that partially works for 2 requests but I'm not able to produce the correct timezone yet:
type: custom
forecast:
  source: go
  init: |
    import (
      "fmt"
      "strings"
    )
  script: |
    today
    // concat today and tomorrow
    // "[" + strings.Trim(strings.Trim(today, "[]") + "," + strings.Trim(tomorrow, "[]"), ",") + "]"
  in:
    - name: today
      type: string
      config:
        source: http
        uri: https://enever.nl/api/stroomprijs_vandaag.php?token=<token>
        jq: |
          .data |
          [
            .[] |
            {
              "start": (.datum | strptime("%Y-%m-%d %H:%M:%S") | strftime("%Y-%m-%dT%H:%M:%SZ")),
              "end":   (.datum | strptime("%Y-%m-%d %H:%M:%S") | mktime | strflocaltime("%Y-%m-%dT%H:%M:%SZ")),
              "price": (.prijs | tonumber)
            }
          ] | tostring

Timezone issue resolved:
tariffs:
  grid:
    type: custom
    forecast:
      source: go
      init: |
        import (
          "fmt"
          "strings"
        )
      script: |
        // concat today and tomorrow
        "[" + strings.Trim(strings.Trim(today, "[]") + "," + strings.Trim(tomorrow, "[]"), ",") + "]"
      in:
        - name: today
          type: string
          config:
            source: http
            uri: https://enever.nl/api/stroomprijs_vandaag.php?token=2a8e1f19aa60076ea75f00ad94ad569f
            jq: |
              .data |
              [
                .[] |
                {
                  "start": (.datum | strptime("%F %T") | strflocaltime("%FT%T%:z")),
                  "end":   (.datum | strptime("%F %T") | mktime + 3600 | strflocaltime("%FT%T%:z")),
                  "price": (.prijs | tonumber)
                }
              ] | tostring
        - name: tomorrow
          type: string
          config:
            source: http
            uri: https://enever.nl/api/stroomprijs_morgen.php?token=2a8e1f19aa60076ea75f00ad94ad569f
            jq: |
              .data |
              [
                .[] |
                {
                  "start": (.datum | strptime("%F %T") | strflocaltime("%FT%T%:z")),
                  "end":   (.datum | strptime("%F %T") | mktime + 3600 | strflocaltime("%FT%T%:z")),
                  "price": (.prijs | tonumber)
                }
              ] | tostring

Timezone issue resolved thanks to https://stackoverflow.com/questions/79241351/use-jq-to-parse-local-time-into-golang-rfc-3339/79241515#79241515:
tariffs:
  grid:
    type: custom
    forecast:
      source: go
      init: |
        import (
          "fmt"
          "strings"
        )
      script: |
        // concat today and tomorrow
        "[" + strings.Trim(strings.Trim(today, "[]") + "," + strings.Trim(tomorrow, "[]"), ",") + "]"
      in:
        - name: today
          type: string
          config:
            source: http
            uri: https://enever.nl/api/stroomprijs_vandaag.php?token=<token>
            jq: |
              .data |
              [
                .[] |
                {
                  "start": (.datum | strptime("%F %T") | strflocaltime("%FT%T%:z")),
                  "end":   (.datum | strptime("%F %T") | mktime + 3600 | strflocaltime("%FT%T%:z")),
                  "price": (.prijs | tonumber)
                }
              ] | tostring
        - name: tomorrow
          type: string
          config:
            source: http
            uri: https://enever.nl/api/stroomprijs_morgen.php?token=<token>
            jq: |
              .data |
              [
                .[] |
                {
                  "start": (.datum | strptime("%F %T") | strflocaltime("%FT%T%:z")),
                  "end":   (.datum | strptime("%F %T") | mktime + 3600 | strflocaltime("%FT%T%:z")),
                  "price": (.prijs | tonumber)
                }
              ] | tostring

Looks awesome, but I get this issue with your config:
[main  ] FATAL 2024/12/01 20:24:19 cannot create tariff type 'custom': forecast: decoding failed due to the following error(s):
'' has invalid keys: init

Yes, still waiting for another pointer from https://stackoverflow.com/questions/79242253/how-to-use-import-and-return-a-value-in-the-same-eval

Yes, still waiting for another pointer from https://stackoverflow.com/questions/79242253/how-to-use-import-and-return-a-value-in-the-same-eval or traefik/yaegi#1670

Cool! I know nothing about go and have no idea how to integrate with evcc. However, I managed to create a python script with flask that query both APIs every 3 hours (to avoid limit rating) and cache the responses so evcc can call as many times as it wants. Then I created a container and run it there.
I query the python "server"this way, filtering by frankenergie prices only:
tariffs:   grid:     type: custom     forecast:       source: http       uri: http://<IP_ADDRESS>:5000/prices       jq: '[.data[] | { "start": ( .datum | strptime("%Y-%m-%d %H:%M:%S") | strftime("%Y-%m-%dT%H:%M:%SZ")),                          "end": ( .datum | strptime("%Y-%m-%d %H:%M:%S") | mktime + 3600 | strftime("%Y-%m-%dT%H:%M:%SZ")),                          "price": (.prijsFR | tonumber)                        }] | tostring'
and the python script here:
`from flask import Flask, jsonify
import requests
import os
import time
app = Flask(name)
Cache structure
cache = {
'data': None,   # To hold the combined data from today and tomorrow
'last_updated': 0,  # Timestamp of the last API call
'cache_duration': 60 * 60 * 3  # Cache duration of 3 hours (in seconds)
}
def fetch_and_cache_prices():
"""
Fetches prices from the upstream APIs and caches them.
"""
token = os.getenv('ENERGY_API_TOKEN')
if not token:
return {"error": "API token not provided"}, 400
today_url = f"https://enever.nl/api/stroomprijs_vandaag.php?token={token}"
tomorrow_url = f"https://enever.nl/api/stroomprijs_morgen.php?token={token}"

try:
    # Fetch the data from the upstream URLs
    today_response = requests.get(today_url)
    today_data = today_response.json()

    # Check for error in the API response
    if not today_response.ok or today_data.get("status") != "true":
        return {"error": "Failed to fetch today's prices", "details": today_data}, 502

    tomorrow_response = requests.get(tomorrow_url)
    tomorrow_data = tomorrow_response.json()

    # Check for error in the API response
    if not tomorrow_response.ok or tomorrow_data.get("status") != "true":
        return {"error": "Failed to fetch tomorrow's prices", "details": tomorrow_data}, 502

    # Combine today's and tomorrow's prices
    combined_prices = today_data['data'] + tomorrow_data['data']

    # Cache the combined data and update the timestamp
    cache['data'] = combined_prices
    cache['last_updated'] = time.time()  # Update the last updated time to current time
    return combined_prices
except requests.exceptions.RequestException as e:
    return {"error": "An error occurred while fetching data", "details": str(e)}, 500

@app.route('/prices', methods=['GET'])
def get_prices():
"""
Endpoint to get the combined prices, using cached data if available.
"""
current_time = time.time()
# Check if cache is still valid (within the 3-hour window)
if cache['data'] is None or (current_time - cache['last_updated'] > cache['cache_duration']):
    # Cache expired or no data, so fetch new data
    new_data = fetch_and_cache_prices()
    if isinstance(new_data, tuple):  # Check if there's an error response
        return jsonify(new_data[0]), new_data[1]  # Return error response
    return jsonify({"status": "true", "data": new_data, "code": "5"})

# Return cached data if still valid
return jsonify({"status": "true", "data": cache['data'], "code": "5"})

if name == "main":
app.run(host='<IP_ADDRESS>', port=5000)`
Not a super elegant solution but it does work and solves the rate limit.

@enboer PR should already work. Please feel free to propose a proper description text and naming/ help text if the parameters.

thanks!! fast implementation. What is the correct syntax to set this up.
'Issue' I currently have is that I do not have a full  system, car and charger has not been delivered. Currently the system gives error because of this. Is there is way to setup the system with a dummy car/and charger so I can play around with it?

Actually, I don't think Nordpool is the replacement here. But we can now go ahead and merge Enever afaikt.


Support for http methods via http.method and http.request-body

Checklist

[ ] make test-all (UNIX) passes. CI will also test this
[X] unit and/or integration tests are included (if applicable)
[X] documentation is changed or added (if applicable)

Unable to pass integration tests, even before including my changes. Did several manual tests instead.

Description of change

This PR adds support for HTTP verbs. In order to achieve this, two fields have been added, so it ends like this:
http:
  https://httpbin.org/put:
    status: 200
    method: PUT
    request-body: '{"key": "value"}'
    body:
      - '"key": "value"'

Those are not breaking changes, because when no method is provided, http.NewRequest defaults to GET.
Relates to #484

A quick glance at the code/tests added and this looks great. Haven't tried it locally yet.
The only thing missing is url, I feel that's important to this feature.
For example, if one needs to test the same URL with different methods they won't be able to
http:
  https://someurl.com:
    status: 200
    allow-insecure: false
    no-follow-redirects: false
    timeout: 5000
    body: []
  https://someurl.com:
    status: 200
    method: PUT
    request-body: "blah"
    allow-insecure: false
    no-follow-redirects: false
    timeout: 5000
    body: []

Command.exec does this today. See: #431 (issue) and #434 (code)
That all said, I'm fine with that being a follow up PR. Let me know if it's something you're interested in working on.. Otherwise, I'll get to it before I release this feature.
Many thanks for this, great enhancement!
@sshipway will this close #484 for you?

Agree that url should be added before releasing this feature. I will start working on it following the examples you provided and adding some tests in order to cover that example.
Thanks for the feedback!

All done @aelsabbahy!
codeclimate complains about the receiver name not matching ID method, but I think it is better to keep using r to match GetTitle and GetMeta methods receiver name. Have no strong opinion tho.
Hope it now fits better the scope for #484

Having a 'url' option to the http test is definitely a Good Thing and matches up with the exec tests.
Being able to specify a method and request-body allows simple tests for REST APIs, so can close #484 I think, though I was hoping to be able to specify the request-body as a hash (which is converted to JSON) as well as a string, and have a test in 'body' that is a hash of value/pair tests as well as just string matches.  However it would be a lot fo work to do this, and it could be done as a future feature req...
Many thanks @blalop  for adding the features that I was too busy/lazy/bad-at-coding to make work myself!

@sshipway Thanks for the response!
Request body hash -> JSON is a little too opinionated for my taste, maybe that's something we can revisit later if there's still a need.
Response validation is something I'm very interested in and I'm currently working on it for v0.4.0.
Let me know what you think of this: https://github.com/aelsabbahy/goss/pull/576#issuecomment-689736096
Any feedback is good, I think that PR is getting close to completion.

I like #576, being able to use a gjson test against a string (assuming the string is json of course).  I would prefer a more terse output by default, with an option for detailed logs.
If we have the ability to match returned values using json, then it would seem to me to be a logical extension to allow the option to somehow define the body as json (via a hash), but that's more for convenience in testing REST APIs, can always achieve the same using a formatted string.  Maybe have body-json and body-formencoded attributes as hash alternatives to body, instead of overloading the body attribute?  Much of the reason I prefer having the body defined as a hash is that it allows overriding of selected parameters when managed via heira in puppet, though I acknowledge that this is a very specific use case

@sshipway the whole map to JSON seems a little too specific/opinionated to be honest and I don't plan on supporting something like that in the near term. I'll let you know if that changes.
Hoping this change + #576 allows you to leverage goss in more ways =)
@blalop I'll merge/release this sometime this week. But everything looks good to go!

Curious, did you merge master into this manually or was this an automated process?

It was me, happened to be around here when the conflicts showed :)
btw, do you know when this PR could be merge?

I was working on resolving the conflict locally, then I look at the PR and saw your update.. thought I was losing my mind =)
I'm going to merge it now, but might not be released for another day or so. There's another PR or two that I'm trying to put in the next release.
Thanks for the contribution, this change is awesome!


Horizon by MVTCHES unsupported.

Check if issue with swaglyrics or whether song lyrics unavailable on Genius.

added support


Provide the dna and aa partitions in the output alignment

I thank the developers for their great work making read2tree. I see a great potential in the software. In order to extend the applicability in phylogenetic inferences it would be good to have the nucleotide and amino acid positions delimiting the genes in the output alignment of sequences. Among other applications, this feature will allow for the implementation of more refined substitution models during tree inference searches.
Thanks in advance,

Thanks for suggestion. We have implemented the feature and it is ready to use using the latest Github commit.


Allow relative target paths

Fix for issue #109. This relaxes some logic that required existing paths before creating a DSDLFile abstraction while adding a requirement that ReadableDSDLFile(s) are created with files that exist (i.e. it can't be "readable" if it doesn't exist). At the same time, we clarified (and fixed) the difference between the root_namespace_directories_or_names and lookup_directories arguments of read_files. Our new guidance is to dis-use lookup_directories unless there is a need to separate target lookup paths from dependent type look up paths. This was an unstated design goal that I forgot about and subsequently mis-implemented. This does change the behaviour of the API slightly which is why I've bumped the minor version instead of just the patch.

ping?

No worries. I wasn't sure when you were going to be back is all. I'm trying to get Nunavut 3.0 into review by tomorrow and published next week.
Changes made. I forced pushed because the changes you requested were reverting changes I made so I wanted to have a diff that showed no superfluous changes remained.


Need to enter the port every time I restart Live?! :-(

Hi,
I love TouchOSC.
One thing I think is a shame is the it does not listen to the port between restart of Live: Every time I restart Live I must go to each of the TouchOSC modules I have in my set to enter the "Host port", even though it has not changed I have to go in each "port" field and enter the same port number for the connection to be reestablished with Lemur, it waists me a lot of time every time.
Am I missing something or a parameter in the configuration?
Thanks in advance.

Hello. I thought I could give it another try as my initial explanation might not have been clear.
OSC Monitor sees the OSC messages coming in and displays them as expected.
However TouchOSC does not get them (the little led indicator next to the ‘Port’ field does not blink) unless I manually go in its ‘Port' field and enter the port value again.
It is really frustrating as I have to do this for each track having TouchOSC configured.
I have tried starting the OSC client (Lemur on iPad) before starting Live and the other way around (thinking there is a difference if I start the client or the server first) but it does not make any difference.
Link to a screenshot if it helps: https://ibb.co/ihsHfv
Would be greatly appreciated if anyone could help / help solve this issue. I gave a try to M4L and though I could understand how it works and fix it myself but the learning curve is so steep.

I have posted the same on Ableton M4L form:

Hi JayDeLux,
Thanks for bringing this to our attention! We're aware of this bug and have filed it on our end.
An eventual fix could be included as an update to the Connection Kit pack, although I can't provide any timeline guarantees.
In the meantime, a [live.thisdevice] patched to the Port [textedit] should help, if you'd like to edit the patch yourself.
If you have any further questions about this issue, please contact Ableton Support
Best regards,
Lillia
Max for Live Content Specialist


Tests do not consistently respect passed error tolerance

Currently the tests library cannot be used with DFTK because the error tolerances are not consistently applied. For example
https://github.com/JuliaMolSim/AtomsCalculators.jl/blob/master/src/submodules/AtomsCalculatorsTesting.jl#L46
fails for crude numerical parameters in DFT calculations. We should make a pass on that.

Ah, so I missed one of the test in the end...
I will fix this. Do you want to tag it to v0.1.3 or wait for v0.2 with #12 ?

There is no rush for us, we can just wait until #22 is in.

is this resolved?


Handle error in config_get

The CONFIG command can be disabled server side, in which case we'll have
an error querying for maxclients. Let's handle that error and skip the
metrics if it's the case.

/azp run

Could this issue be the reason I'm seeing this error in our logs?
2020-02-25 10:26:05 UTC | CORE | ERROR | (pkg/collector/runner/runner.go:292 in work) | Error running check redisdb: [{"message": "unknown command 'CONFIG'", "traceback": "Traceback (most recent call last):
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/datadog_checks/base/checks/base.py\", line 673, in run
    self.check(instance)
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/datadog_checks/redisdb/redisdb.py\", line 484, in check
    self._check_db(instance, custom_tags)
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/datadog_checks/redisdb/redisdb.py\", line 190, in _check_db
    config = conn.config_get(\"maxclients\")
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/redis/client.py\", line 971, in config_get
    return self.execute_command('CONFIG GET', pattern)
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/redis/client.py\", line 839, in execute_command
    return self.parse_response(conn, command_name, **options)
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/redis/client.py\", line 853, in parse_response
    response = connection.read_response()
  File \"/opt/datadog-agent/embedded/lib/python3.7/site-packages/redis/connection.py\", line 718, in read_response
    raise response
redis.exceptions.ResponseError: unknown command 'CONFIG'
"}]

We're running Datadog Agent 7.17.1, in ECS, and monitoring an AWS Elasticache instance.
If it's not - I'll reach out to support (or open a new issue here if that's preferable)

Yes, that's the error generated before.

@therve Ahh, got it. The Redis integration update hasn't shipped yet. Is there any timeline on when we could expect it to be shipped with the Datadog-agent?

You can update the integration today with datadog-agent integration install datadog-redisdb==2.0.1. Otherwise, the agent is in the release freeze, it should be out soon.

Ok, got it! Not feasible for us as we're deploying the agent as a side-car container in ECS, but I'll keep my fingers crossed for the release to ship soon. Thanks!

Thank you, sorry for the trouble.

No worries! Glad that it's a known and fixed problem. We can definitely wait a bit longer for a solid and stable release to come.

might be time to retire this https://docs.datadoghq.com/integrations/faq/redis-integration-error-unknown-command-config/
made debugging this regression harder than it should have been, it also does indeed fail the check triggering alarms

That doc was for a previous iteration of the same error, unfortunately.


Packaging requests: octosql

Project description
OctoSQL is a query tool that allows you to join, analyse and transform data from multiple databases and file formats using SQL.
Metadata

homepage URL: https://github.com/cube2222/octosql
source URL: https://github.com/cube2222/octosql
license: mpl20
platforms: linux, darwin

I have packaged the application in the pull request https://github.com/NixOS/nixpkgs/pull/190467.

The pull request https://github.com/NixOS/nixpkgs/pull/190467 has been merged and octosql should be packaged intially.


Implement autocolors version 0.3.1

There have been some minor changes.
Implement the latest and therefore current version of autocolors.

Released with version 4.25.06


Fix some UI problems (install/checkbox)

Fix the space between the box and label for checkboxes, and fix incorrect usages in "repo-issue.js" (I have tested it manually)
Old

New
The UI & checkbox space looks better

Review by ignoring spaces https://github.com/go-gitea/gitea/pull/30854/files?diff=split&w=1


Unable to load alignment module

From a user (via mail):

i have installed all the dependency package for alitv as per the github
instruction. i want to create image for custom genomes. i have made yml
file as per the tutorials.
i am getting following error
FATAL - Unable to load alignment module 'AliTV::Alignment::lastz' at
/data/ngs/programs/AliTV-perl-interface/bin/../lib/AliTV/Script.pm line 123.

me too:
perl -Ilib bin/alitv.pl ../../../alitv/*.fasta > BAFB.json
FATAL - Unable to load alignment module 'AliTV::Alignment::lastz' at bin/alitv.pl line 117.

Unable to load alignment module 'AliTV::Alignment::lastz' at bin/alitv.pl line 117.

Any updates?

Hi @mictadlo thanks for reporting, that you have this issue as well. The syntax of your command indicates that you are not using the latest version of AliTV-perl-interface (the -Ilib option is no longer required and the .json file will not be given on STDOUT). Could you please update AliTV-perl-interface and try again like this:
perl bin/alitv.pl --project BAFB ../../../alitv/*.fasta

My problem currently is that I can not replicate this error and therefore I can not effectively debug it.

I also got the same error.
In my case, I had forgotten to do
cpanm --installdeps .
on "/AliTV/AliTV-perl-interface" (lol).
After that, my alitv.pl is working well.

It work! Thank you!!


Progress bar

https://github.com/rsalmei/alive-progress

https://github.com/andgineer/goodreads-export/commit/93e0211abed77f285fe8ba01cbc6156d3f15307c


Auto Delete on Idle

[Enter feedback here]
Documentation says --auto-delete-on-idle as:
ISO 8601 timeSpan or duration time format for idle interval after which the topic is automatically deleted. The minimum duration is 5 minutes
Shouldn't this be subscription instead of topic here (highlighted above)?

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

ID: 52b7d039-d543-895c-3056-2616b21ac86e
Version Independent ID: 84875b23-e2ef-997a-c819-dafbae87f4e1
Content: az servicebus topic subscription
Content Source: latest/docs-ref-autogen/servicebus/topic/subscription.yml
Service: service-bus
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

Any update on this please?

service bus team should take a look

Hi @monojit18, thanks for bringing this to our attention.
We would triage internally on expected behavior and would keep you posted.

@monojit18 , this has been fixed in our latest release. Please review the updated help and let us know in case of additional concerns. Thanks!


Make option extendRefs default to "fail"

See #260.
To enforce standard compliant schemas. Simply ignoring additional keywords by default would be too confusing.

In 5.0.0-beta.0.
To use: npm install<EMAIL_ADDRESS>


Project manager

Check for existing issues

[X] Completed

Describe the feature
Can there please be a project manager similar but better than VScode? I want to create a new window but it always shows the new "untitled" file. It would be nice if this project manager saved a list of project directories, automatically removing those that don't exist.
If applicable, add mockups / screenshots to help present your vision of the feature
No response

There is a basic project manager already:

Thanks @jezikk , what theme is that?

There is also a modal project selector as well -> opt-command-o.  That being said, we may want to get a little more sophisticated in the future with project management, so feedback is definitely welcome here.

Thank you and sorry for missing the feature


name of the loadbalancer machine in the master-1's hosts file is lb, but we use the name loadbalancer while connecting to it from vagrant

So, the command that we use to connect to the loadbalancer machine using vagrant is
vagrant ssh loadbalancer
but when we try to connect to this machine through ssh from machine master-1
vagrant@master-1:~$ ssh loadbalancer

it gives us below error
ssh: Could not resolve hostname loadbalancer: Temporary failure in name resolution

and the reason is that in /etc/hosts file the name of the host is lb, i think we should get that changed to loadbalancer to avoid confusion.

good catch, I got confused by this

Hi @viveksinghggits @fgauna12
We have now merged a major change to bring this to v1.24.
Many issues have been addressed as part of the upgrade.
I realise this is a very old issue, however I was tasked with closing off all old issues following the upgrade.
Please try it now and feel free to raise further issues.
Thanks.


Add golioth_rpc feature

The RPC feature is not yet deployed on the backend (I tested with local golioth instance on branch feature/device-rpc). Therefore, the RPC feature is disabled by default in Kconfig.

There are build failures, which got unnoticed by CI: https://github.com/golioth/golioth-zephyr-sdk/runs/7396608549?check_suite_focus=true
I've observed this problem before and I think this was related to twister problem in Zephyr 3.1.0, which always returns 0 exit code even in case of errors. Zephyr from tip of main already fixed this issue, if I remember correctly.


Breaking change introduced in python:3.8-slim

Hey all,
I have a series of Docker containers running python:3.8-slim that I deploy from my local machine to AWS ECS.
The last successful push was at July 22, 2024, 15:20:36, UTC.
I went to deploy one of the containers this morning - having made exactly 0 changes to the Dockerfile, the docker-compose.yml, the requirements.txt, or any other config file, and it failed out with the following message:
------
 > [container-name 4/5] RUN pip install pip --upgrade     pip install -r requirements.txt:
#0 2.035 Requirement already satisfied: pip in /usr/local/lib/python3.8/site-packages (23.0.1)
#0 2.295 Collecting pip
#0 2.467   Downloading pip-24.1.2-py3-none-any.whl (1.8 MB)
#0 2.701      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 8.1 MB/s eta 0:00:00
#0 2.877 ERROR: Could not find a version that satisfies the requirement install (from versions: none)
#0 2.878 ERROR: No matching distribution found for install
#0 3.135
#0 3.135 [notice] A new release of pip is available: 23.0.1 -> 24.1.2
#0 3.135 [notice] To update, run: pip install --upgrade pip
------
failed to solve: executor failed running [/bin/sh -c pip install pip --upgrade     pip install -r requirements.txt]: exit code: 1

Here's the entirety of my Dockerfile:
FROM python:3.8-slim

WORKDIR /app

ADD requirements.txt /app

RUN pip install pip --upgrade \
    pip install -r requirements.txt

ADD /folder /app

ARG AWS_ACCOUNT_ID
ENV AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}
ARG SENTRY_DSN
ENV SENTRY_DSN=${SENTRY_DSN}
ARG MODE
ENV MODE=${MODE}

CMD ["python", "main.py"]

I've tested with python:3.7-slim, and the problem does not replicate.
Removing the pip install pip --upgrade portion removes the error.
I noticed the last push to for python:3.8-slim was an hour ago. The last change to pip was 20 hours ago, before the last successful push I had.
Thoughts?

Having exact same issue with 3.11-slim deploying to Azure ACR

The latest push was from a rebuild due to a change in the underlying image. The last change to 3.8 was 2 weeks ago.

What architecture are you using? amd64 or arm64?

 It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

What architecture are you using? amd64 or arm64?

amd64

my issue was having ARG=PIP="python -m pip install --trusted-host pypi.org"`` and then running $PIP install`. not sure why it just stopped working but removing the double install command fixed it.

Ah, the original post output seems to have the same bug:

RUN pip install pip --upgrade     pip install -r requirements.txt

If that correctly reflects what is in the Dockerfile, then I am surprised it worked before since that is just one pip install command, with 2 pip arguments and an extra install argument. (Not sure why the previous pip ignored the extra install, but now it's trying to find a package by that name: pip install install).
One of these alternatives is probably what you meant:
RUN pip install pip --upgrade && pip install -r requirements.txt
RUN set -e; pip install pip --upgrade; pip install -r requirements.txt

I bet this is related: :eyes:

https://web.archive.org/web/20240404062848/https://pypi.org/project/install/
vs https://pypi.org/project/install/

(there used to be an install module on PyPI, but it no longer exists, hence your attempts to install it now failing)

https://github.com/eugenekolo/pip-install/issues/4 -> https://github.com/pypi/support/issues/451 -> https://github.com/pypi/support/issues/451#issuecomment-2230952318

Project install has been removed and added to the Prohibited Project Names list.