Site not exporting properly - maybe not compatible with "bedrock" framework?

Hi Leon,
I have used your plugin before with no issue, but it seems after I started using the "Bedrock" framework  from roots.io the export doesn't work at all. The crawler doesn't discover links properly and the Wordpress assets don't come across;
Bedrock - https://roots.io/bedrock/
Maybe something to do with the way they handle paths?

├── composer.json
├── config
│   ├── application.php
│   └── environments
│       ├── development.php
│       ├── staging.php
│       └── production.php
├── vendor
└── web
├── app
│   ├── mu-plugins
│   ├── plugins
│   ├── themes
│   └── uploads
├── wp-config.php
├── index.php
└── wp

I would love to use your plugin with S3 as it is perfect for our website. Let me know if you have any insight into this issue.

Hi @FredericoC,
Thanks for reporting this. I haven't tested with Bedrock yet, but if any issues, will definitely want them resolved.
Could you please try this latest build zip here: https://github.com/leonstafford/wordpress-static-html-plugin/releases/tag/latest_snapshot
And do the usual of disabling all plugins/switching themes to isolate the cause. It could be a different environmental issue, too. Anything in the PHP error logs?
Cheers,
Leon

Hi Leon,
Thanks for the fast response.
The issue is the same with the new build;

Deactivated all plugins
Used a default theme

It was working before I started using the bedrock boilerplate, so I'm assuming it is some incompatibility with the crawler...
Clicking "Preview initial crawl List" returns:
https://example.test/electrical-takeoff-estimating-software/
https://example.test/plumbing-takeoff-estimating-software/
https://example.test/audio-visual-takeoff-estimating-software/
https://example.test/security-takeoff-estimating-software/
https://example.test/fire-takeoff-estimating-software/
https://example.test/hvac-takeoff-estimating-software/
https://example.test/roofing-takeoff-estimating-software/
https://example.test/landscaping-takeoff-estimating-software/
https://example.test/category/uncategorized/```

Those links don't exist on my website, and I have about 60 more links which are not listed.

PHP message: STARTING EXPORT: STATIC EXPORT URL https://example.test/wp/mystaticsite/" while reading upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:06 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/electrical-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/plumbing-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/audio-visual-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:08 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/security-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:08 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/fire-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/hvac-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/roofing-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/landscaping-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:10 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/category/uncategorized/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"

This is also strange, returning 404 on https://example.test/ which definitely works on the browser.

Ok, rather interesting, no obvious things jumping out at me from that info.
Although, it hints at package managed WP, which Bedrock may be using and is
a known issue.
Earlier versions basically crawled from the outside, like SiteSucker or
httrack might. Recent versions infer things from WP, which gives some
advantages, but is likely what needs to handle “non-standard” WP dirs.
Bedrock and roots things are commom enough that I really need to fix this.
Will start debugging/working on a solution.
Thanks again for reporting.
Not sure, but possibly you could create some symlinks to trick it in the
meantime...
On Wed, Nov 28, 2018 at 12:08 Frederico Carvalho<EMAIL_ADDRESS>wrote:

Hi Leon,
Thanks for the fast response.
The issue is the same with the new build;

Deactivated all plugins
Used a default theme

It was working before I started using the bedrock boilerplate, so I'm
assuming it is some incompatibility with the crawler...
Clicking "Preview initial crawl List" returns:
https://example.test/electrical-takeoff-estimating-software/https://example.test/plumbing-takeoff-estimating-software/https://example.test/audio-visual-takeoff-estimating-software/https://example.test/security-takeoff-estimating-software/https://example.test/fire-takeoff-estimating-software/https://example.test/hvac-takeoff-estimating-software/https://example.test/roofing-takeoff-estimating-software/https://example.test/landscaping-takeoff-estimating-software/https://example.test/category/uncategorized/``` https://example.test/category/uncategorized/
Those links don't exist on my website, and I have about 60 more links which are not listed.

PHP message: STARTING EXPORT: STATIC EXPORT URL https://example.test/wp/mystaticsite/" while reading upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:06 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/electrical-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/plumbing-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:07 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/audio-visual-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:08 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/security-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:08 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/fire-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/hvac-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/roofing-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:09 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/landscaping-takeoff-estimating-software/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"
2018/11/28 05:01:10 [error] 12027#12027: *5111 FastCGI sent in stderr: "PHP message: BAD RESPONSE STATUS (404): https://example.test/category/uncategorized/" while reading response header from upstream, client: <IP_ADDRESS>, server: example.test, request: "POST /wp/wp-admin/admin-ajax.php HTTP/2.0", upstream: "fastcgi://unix:/var/run/php-fpm-wordpress.sock:", host: "example.test", referrer: "https://example.test/wp/wp-admin/admin.php?page=wp2static"

This is also strange, returning 404 on https://example.test/ which
definitely works on the browser.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<https://github.com/leonstafford/wordpress-static-html-plugin/issues/179#issuecomment-442321595>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AB-JkS8M8SL4M50zHK-3f3WV-FdZevfXks5uzhoygaJpZM4Y2yCj>
.

Created a very simple example with Trellis (roots.io provisioning and deployment system) and Bedrock;
https://github.com/3stack-software/bedrock-wpstatic-dev
Instructions in the readme, if you're using linux it's very easy to get going. I just tested that example and the latest wp static dev is not working properly.
Let me know if you need any assistance

@leonstafford
I dug around the source code and found the possible root of the major issues when using the Bedrock framework. I'm far from a Wordpress expert, so here's my findings for your review;
PROBLEM 1 - Not generating the list of page URL's properly;
It seems that using the site_url function with bedrock is adding wp at the end of the URL e.g. https://example.test/wp/, which is not the actual home url.
https://github.com/leonstafford/wp2static/blob/master/library/StaticHtmlOutput/WPSite.php#L10
This caused WP2Static to POST a "subdirectory", which in turn ran the code below, removing links from the list in the process;
https://github.com/leonstafford/wp2static/blob/master/library/StaticHtmlOutput/FilesHelper.php#L401
POSSIBLE SOLUTION FOR 1
Use get_home_url on WPSite.php instead of site_url. I have no idea if it has any side effects but worked for me.
PROBLEM 2 - Not generating the list of assets (stylesheets, scripts, uploads, images etc);
I was sure this was a path issue, so I had a look at the FilesHelper.php file. The ABSPATH global constant is returning the path to the Wordpress installation, which is fine for vanilla wordpress, but bedrock has all the assets in the "app" folder at the same level as the "wp" (wordpress installation) folder.
E.g.: This code will return /srv/www/example/current/web/wp/app/uploads, when in Bedrock it should be returning /srv/www/example/current/web/app/uploads (notice i removed wp).
POSSIBLE SOLUTION FOR 2
I didn't get far with a solution for this one... But I hope my findings will steer you in the right direction.
I know bedrock sets the ABSPATH constant in their config/application.php file, but they explicitly append the wp to the path, so I didn't want to break something else by changing it.
So I tried to find some config that I could use to detect if the site was using the bedrock framework, and this is what I noticed;
        // The `Bedrock` framework (https://roots.io/bedrock/) has a different path structure.
        // I believe CONTENT_DIR is a custom constant from bedrock, so I'll use that to detect the actual absPath
        if (defined('CONTENT_DIR') && CONTENT_DIR === '/app') {
            // The `app` segment is already in the "URL", so remove it from the absolute path
            $absPath = str_replace(CONTENT_DIR, '/', WP_CONTENT_DIR);
        } else {
            $absPath = ABSPATH;
        }

Adding this code to FilesHelper.php (replace ABSPATH with $absPath) made all the assets discoverable by WP2Static and generated a proper "WP-STATIC-INITIAL-CRAWL-LIST.txt", but when actually exporting it still didn't do it correctly (exported the 404 page content). I'm assuming the ABSPATH constant is used everywhere, so that might be the issue. I would suggest to create an abstraction for cases like Bedrock.
OTHER SUGGESTION
Just a suggestion, but using the Sage templating framework, there are other system folders/files that could be added to the default "exclusion list", like;

node_modules
bower_components
vendor
.yarn
gulpfile.js
package*.json
bower.json
composer.json
*.map

I hope this helps!

Hi @FredericoC,
FYI, I've got a Trellis + Bedrock install running now and will start debugging this tonight. It should solve it for Debian package-managed WP installs and anyone with custom paths.
Fingers crossed!

A working site's reference:
var wp_site ={
   "uploads_url":"http://secperf.wp2static.com/wp-content/uploads",
   "site_url":"http://secperf.wp2static.com/",
   "site_path":"/var/www/html/",
   "plugins_path":"/var/www/html/wp-content/plugins",
   "wp_uploads_path":"/var/www/html/wp-content/uploads",
   "wp_includes_path":"/var/www/html/wp-includes",
   "wp_contents_path":"",
   "theme_root_path":"/var/www/html/wp-content/themes",
   "parent_theme_path":"/var/www/html/wp-content/themes/twentyseventeen",
   "child_theme_path":"/var/www/html/wp-content/themes/twentyseventeen",
   "child_theme_active":false,
   "permalink_structure":"/%year%/%monthnum%/%day%/%postname%/",
   "wp_inc":"/wp-includes",
   "wp_content":"//var/www/html/wp-content",
   "wp_uploads":"/wp-content/uploads",
   "wp_plugins":"/wp-content/plugins",
   "wp_themes":"/wp-content/themes",
   "wp_active_theme":"/wp-content/themes/twentyseventeen",
   "subdirectory":false,
   "uploads_writable":true,
   "permalinks_set":36,
   "curl_enabled":true
}

We can also see the "wp_content":"//srv/www/example.com/current/web/app", is completely wrong and should be /srv/www/example.com/current/web/wp/wp-content/

We also see the theme root and actual theme dirs differ, when seeing the themes set by default WP install vs any loaded by Bedrock
"theme_root_path":"/srv/www/example.com/current/web/app/themes",
   "parent_theme_path":"/srv/www/example.com/current/web/wp/wp-content/themes/twentyseventeen",
   "child_theme_path":"/srv/www/example.com/current/web/wp/wp-content/themes/twentyseventeen",

As there is nothing else in a Bedrock's /web/wp/ dir besides these, we may be OK to deduce the /wp/ dir based on the current theme's parent's parent's path, ie
from /srv/www/example.com/current/web/wp/wp-content/themes/twentyseventeen
we can go 2 levels up
But at this point, do we even need the wp-content directory for anything?
if we are rewiring the full path the the plugins dir and the full path to the themes, uploads, etc. What links would be left pointing to wp-contents?
Also, get_home_path() yields /srv/www/example.com/current/web/ which is not really enough to guess where the user's wp-content may be...

proposed change is:

rm all references to wp-content, don't leave it as a rewrite option

rm all references to theme_root, don't leave it as a rewrite option

rewrite fields become full paths, no funky concatenation, ie wp-content/themes/twentyseventeen

add rewrite theme for child theme if active

these rewrite rules are just that, rewrite rules, allowing for users to add any other arbitrary

original => new

plugins and wp-includes rewrite options remain, but as full paths

rewrites just as a single text area, newlines and commas delimiting

path rewriting as an additional textarea, both loaded with defaults

Summary

correct paths otherwise required behind the scenes
remove fields specific to key WP rewrites
sane defaults given to user for flexible rewrites functions (source code and directories)
Restore default settings to get defaults back
execute rewrites by order in list (ie, to handle subdirectory creation and moving)

example rules for renaming directories:
In order to move wp-content/themes/twentyseventeen to contents/ui/mytheme, we'd need:
wp-content,contents
contents/themes,contents/ui
contents/ui/twentyseventeen,contents/ui/mytheme

At each iteration, it will be checking for existence of the source dir and throw an error if not found.

noting another issue during implementation:
When plugin is trying to just copy a file that doesn't need parsing, it's assuming the standard WP directory structure. We can either make this optimization an option or put in some better detection to find where the files are... (latter preferred)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//favicon.ico to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/favicon.ico in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/assets/images/svg-icons.svg in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/assets/images/espresso.jpg to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/assets/images/espresso.jpg in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/assets/images/header.jpg to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/assets/images/header.jpg in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/assets/images/sandwich.jpg in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/assets/images/coffee.jpg to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/assets/images/coffee.jpg in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)
ERROR: trying to copy local file: /srv/www/example.com/current/web/wp//wp/wp-content/themes/twentyseventeen/screenshot.png to: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/wp/wp-content/themes/twentyseventeen/screenshot.png in archive dir: /srv/www/example.com/current/web/app/uploads/wp-static-html-output-1544952318/ (FILE NOT FOUND/UNREADABLE)

@FredericoC this part is now working - w00t!

Quite a bit of (needed) refactoring came out of this task, so still a bit more work/tidying up, but I'm really excited about this stuff coming out!

@FredericoC happy to close this now :smile_cat:
I've put an example guide here: https://forum.wp2static.com/-42/how-to-export-when-using-bedrock-by-rootsio
And this is in the latest build zips here: https://forum.wp2static.com/-30/how-to-install-the-latest-preview-of-version-59-of-wp2static
Please re-open with any issues you find

Hi @FredericoC,
I think that's the case, my dir structure is here: https://forum.wp2static.com/-42/how-to-export-when-using-bedrock-by-rootsio
Just whatever defaults they give out of the box. Wasn't completely sure where to put the other static stuff, like a static export test, it's under /wp in my example, but could just as easily be in /app, with the plugins and uploads, etc
I'll make another task for those default excludes, good thinking!

Hi @leonstafford your link does not exist anymore, and the export still doesn't work with bedrock, do you plan to look on this ?

Hi @FredericoC, thanks for your effort in reporting. Sorry that no progress has been made with the Bedrock setup here. As the issue is open, I mean to address it (or someone may send a patch in the meantime if we're lucky!).
I remember spending time to resolve Bedrock paths years ago, so you may find it works in this project vs WP2Static:
https://github.com/leonstafford/static-html-output
Else, we can try Simply Static (on wp.org, getting some updates recently) or I can provide a few other alternatives which may place nicer with the roots path setup until I get this fixed here.

Hi @leonstafford thanks for your answer, but static-html-output does not work too. I've opened an issue with more information at
https://github.com/leonstafford/wp2static/issues/789
Do you have some times to look at it ?
Thanks !


Add Git section to coding standards

This seems to be doing a lot more than just adding a git section?

Odd, I deleted the web-interface directory in the Website branch yesterday, the change seems to somehow have carried across here.

Do you want to close this and change it or just go ahead with removing "/webInterface" from Developer branch?

Well, it needs to go one way or another.

Cool then I'll merge. Unless someones depending on WebInterface?


Mise install cue not working

Describe the bug
When doing mise install cue on linux x86-64 it errors out with a "could not uncompress" message
To Reproduce
mise use -g cue
Expected behavior
No problem when trying to install cue
mise doctor output
No errors and no warnings
Additional context
I dont think the problem is with mise but mote likely with the cue plugin. Not sure what to do in this case

This is reproducible in asdf with asdf install cue latest (without version mise always installs the latest available according ls-remote)
It seems that the archive for latest version 0.10.0-0.dev is not available and therefore unpacking (a 404 error page with ending .tar.gz or similar) fails. If you check for the latest stable version via mise ls-remote cue, you'll find 0.9.2 which seems to install just fine via mise install<EMAIL_ADDRESS>

Hey thanks! Let me close this.


luci-app-statistics broken links

Firmware Version
LEDE Reboot SNAPSHOT r3418-b1c2506 / LuCI Master (git-17.042.68041-16395c3)
Click on graph in Statistics/Wireless page and you get
No page is registered at '/admin/statistics/graph/wlan0'. If this url belongs to an extension, make sure it is properly installed. If the extension was recently installed, try removing the /tmp/luci-indexcache file.
The link is wrong
/cgi-bin/luci/admin/statistics/graph/wlan0
It should be?
/cgi-bin/luci/admin/statistics/graph/iwinfo/wlan0
Same on Processor/Processes page.

The same behaviour seem to be on all those statistics charts, where you have multiple data sources and separate tabs for them (e.g. wireless, processor, thermal, ...)
On the pages with only one data source, the charts are not links at all.
Possibly none of the charts should work as links.

Yes, these links are not necessary.

Those links are created by /usr/lib/lua/luci/view/public_statistics/graph.htm
Originally the links have been added to the pages with multiple data sources by
https://github.com/openwrt/luci/commit/b2774f0cc64c3aec4328fe5869f410164a94cb89#diff-6c4c4de26cb3de6742abe230767ad23e
I patched my live router this way and the links disappear:
--- /usr/lib/lua/luci/view/public_statistics/graph.htm
+++ /usr/lib/lua/luci/view/public_statistics/graph.htm
@@ -29,9 +29,7 @@

        <% for i, img in ipairs(images) do %>
-               <% if is_index then %><a href="<%=pcdata(images[img])%>"><% end %>
                <img src="<%=REQUEST_URI%>?img=<%=img%>&host=<%=current_host%>" />
-               <% if is_index then %><% end %>

        <% end %>


clues: add missing elite anagram clue

probably don't merge this until someone reports it being missing
wiki feedback claims this is now obtainable, Lenny confirmed an EHC hint for it, also that there's another clue they fixed but I have no idea which one

probably don't merge this until someone reports it being missing
wiki feedback claims this is now obtainable, Lenny confirmed an EHC hint for it, also that there's another clue they fixed but I have no idea which one

The other clue they fixed you refer to may be https://oldschool.runescape.wiki/w/Clue_scroll_(elite)_-_Bow_within_the_temple_in_Civitas_illa_Fortis

Can confirm I had this clue on leagues earlier

Superseded by 5c148d306dcf8b119b62b0320b21f9a62431f811


Add support for async_fetch in remote_jwks in Request Authentication

(This is used to request new product features, please visit https://discuss.istio.io for questions on using Istio)
Describe the feature request
Support for remote_jwks was added part of this enhancement request and is under the PILOT_JWT_ENABLE_REMOTE_JWKS feature flag. It would be nice to support the envoy proxy's async_fetch directly in Istio without the need to configure this setting explicitly part of the envoy filter. What do you all think?
Describe alternatives you've considered
While trying to get the envoy filter to MERGE only the async_fetch setting, I ran into issues where the MERGE operation is replacing the entire provider configuration instead of just adding the async_fetch config block to the remote_jwks config. The workaround for me was to include the entire remote_jwks config block once again part of the envoy filter which seemed unnecessary to me. Either this or I am doing the MERGE wrong.. in which case, it would be nice to know how to fix this..
Affected product area (please put an X in all that apply)
[ ] Ambient
[ ] Docs
[ ] Dual Stack
[ ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[X] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Additional context
Here are my configs for anyone who is interested (configure destination rule & service entry as needed):
OS: Debian GNU/Linux
Istio Version: 1.18.2 (same issues in other later versions as well)

Set the PILOT_JWT_ENABLE_REMOTE_JWKS env

Request Authentication config

apiVersion: security.istio.io/v1
kind: RequestAuthentication
metadata:
  name: release-name-jwt-ra
  annotations:
    RoleType: foo
  labels:
    app.kubernetes.io/name: release-name
spec:
  selector:
    matchLabels:
      app.kubernetes.io/name: release-name
  jwtRules:
    - issuer: "https://x.y.z.com"
      jwksUri: "https://x.y.z.com/auth/v1/jwks"
      forwardOriginalToken: true

Generated Envoy config

             {
              "name": "envoy.filters.http.jwt_authn",
              "typed_config": {
               "@type": "type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication",
               "providers": {
                "origins-0": {
                 "issuer": "https://x.y.z.com",
                 "remote_jwks": {
                  "http_uri": {
                   "uri": "https://x.y.z.com/oauth2/v0/jwks",
                   "cluster": "outbound|443||x.y.z.com",
                   "timeout": "5s"
                  },
                  "cache_duration": "300s"
                 },
                 "forward": true,
                 "payload_in_metadata": "https://x.y.x.com"
                }
               },
               "rules": [
                {
                 "match": {
                  "prefix": "/"
                 },
                 "requires": {
                  "requires_any": {
                   "requirements": [
                    {
                     "provider_name": "origins-0"
                    },
                    {
                     "allow_missing": {}
                    }
                   ]
                  }
                 }
                }
               ],
               "bypass_cors_preflight": true
              }
             }

Add Envoy Filter to MERGE async_fetch config:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: release-name-jwt-ef
spec:
  workloadSelector:
    labels:
      app.kubernetes.io/name: release-name
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.jwt_authn"
      patch:
        operation: MERGE
        value:
          name: "envoy.filters.http.jwt_authn"
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication"
            providers:
              origins-0: # Assuming that there is only one provider
                remote_jwks:
                  async_fetch:
                    fast_listener: true

Expected Output: async_fetch config added along with existing remote_jwks config.

             {
              "name": "envoy.filters.http.jwt_authn",
              "typed_config": {
               "@type": "type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication",
               "providers": {
                "origins-0": {
                 "issuer": "https://x.y.z.com",
                 "remote_jwks": {
                  "http_uri": {
                   "uri": "https://x.y.z.com/oauth2/v0/jwks",
                   "cluster": "outbound|443||x.y.z.com",
                   "timeout": "5s"
                  },
                  "async_fetch": {
                    "fast_listener": true
                  },
                  "cache_duration": "300s"
                 },
                 "forward": true,
                 "payload_in_metadata": "https://x.y.x.com"
                }
               },
               "rules": [
                {
                 "match": {
                  "prefix": "/"
                 },
                 "requires": {
                  "requires_any": {
                   "requirements": [
                    {
                     "provider_name": "origins-0"
                    },
                    {
                     "allow_missing": {}
                    }
                   ]
                  }
                 }
                }
               ],
               "bypass_cors_preflight": true
              }
             }

Actual Output: Notice how the entire provider config is replaced

             {
              "name": "envoy.filters.http.jwt_authn",
              "typed_config": {
               "@type": "type.googleapis.com/envoy.extensions.filters.http.jwt_authn.v3.JwtAuthentication",
               "providers": {
                "origins-0": {
                 "remote_jwks": {
                  "async_fetch": {
                   "fast_listener": true
                  }
                 }
                }
               },
               "rules": [
                {
                 "match": {
                  "prefix": "/"
                 },
                 "requires": {
                  "requires_any": {
                   "requirements": [
                    {
                     "provider_name": "origins-0"
                    },
                    {
                     "allow_missing": {}
                    }
                   ]
                  }
                 }
                }
               ],
               "bypass_cors_preflight": true
              }
             }

@ramaraochavali : Would appreciate your input here.

I'll try and see if I can create a PR late next week or so if thats ok :)

Hi @leosarra
I am already in the middle of this… I am traveling this week. Let me see if I can get the PR out earlier…
It will also be nice personally for me to have my first contribution in Istio :)

Ok sure np 😊

Do yall know if this async fetch of JWKS by Envoy will fix the problem, where the JWT token issuer (idP) rotate the key and new token is issued against a new key .
The JWT comes with a new KID. This KID is missing in Envoy cache and doesn't trigger a JWKS fetch/refresh of cache. So fails JWT verification.
Would envoy async fetch address this "new KID" problem?


Using pogo-optimizer is modifying in-game data

When I have the proxy switched on, the game shows me as having 0 pokemon in gyms. The ones I know are currently in gyms appear in my inventory with full health. As soon as I turn off the Wi-Fi connection, it goes back to the correct number. This concerns me, as the only reason I was comfortable using this was due to the assertion that none of the data is modified, and would therefore be transparent to Niantic.

It would not be transparent to Niantic. It's only modifying the data that's sent to you, not sent to them. I am curious why it's modifying that data at all, however.

It would not be transparent to Niantic. It's only modifying the data that's sent to you, not sent to them.

I'm confused, those two statements seem to contradict each other.
But yeah, I assumed it was just another bug with the game, but it definitely only happens when I'm using the proxy setup for this. Have tested multiple times to confirm, and happened at home and a friends place, only on the proxied connection.

The data sent to you and the data sent to the server are two different things. I believe you that it's being modified, I just think that it's an issue with the POGOProtobuf library.

I didn't think anything at all was modified, just intercepted to read the data from and passed along as is, which obviously doesn't appear to be the case. Not sure why it would even need to be modified? Slightly less comfortable now that I know that what the app ends up seeing is not the same as what the server sent down.
At any rate, sounds like it's just a flag being dropped. Not a big deal since I can't reach any gyms from anywhere I'm going to be connected over the proxy, just thought it worth mentioning.

@lennykano Would you mind filing this as a POGOProtobuf bug as per https://github.com/justinleewells/pogo-optimizer/issues/124#issuecomment-235451351?

Sure, is https://github.com/AeonLucid/POGOProtos the project you're referring to? Google isn't helping much when I search for POGOProtobuf.

Hmm, I guess it would be https://github.com/rastapasta/pokemon-go-protobuf-node since that’s what https://github.com/rastapasta/pokemon-go-mitm-node (which pogo-optimizer depends on) uses. But @justinleewells would know for sure.

cc @rastapasta

No probs, I'm gonna hold off making an issue just yet because I just got home, ran a git pull and started it up to check my IVs for todays catch, and the bug isn't happening now. Don't have time to investigate now but I'll check the other machine/network tomorrow morning and see if the pulling the latest code fixes it there too. Synced it this morning (13-14 hours ago) before the bug happened, so if a change has fixed it it's something pretty recent.

OK just tested at my friends place and it's still happening on the latest version. If I use the proxied connection, the game thinks I have 0 defenders in gyms, as soon as I switch over to the non-proxied one it says the correct number. Not sure why it didn't happen at home last night.
It looks like the repo I linked is used by https://github.com/rastapasta/pokemon-go-protobuf-node, and I found that the issue has already been reported there: https://github.com/AeonLucid/POGOProtos/issues/43


Delete highlightBuilder, use regular builder instead

Maybe it is not a good idea to force user to use MarkdownElementBuilder  to build code block with highlight. highlightBuilder is more friendly and simple.


Add support for parsing timestamps from CSV files

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
I updated the  nyc benchmark schema to use timestamps:
fn nyctaxi_schema() -> Schema {
    Schema::new(vec![
        Field::new("VendorID", DataType::Utf8, true),
        Field::new("pickup_datetime", DataType::Timestamp(TimeUnit::Microsecond, None), true),
        Field::new("dropoff_datetime", DataType::Timestamp(TimeUnit::Microsecond, None), true),
        ...

I tried running a query and got this error.
Error: ArrowError(ExternalError(ArrowError(ParseError("Error while parsing value 2020-01-01 00:35:39 for column 1 at line 2"))))

Describe the solution you'd like
I would like to be able to query CSV files containing timestamps.
Describe alternatives you've considered
None.
Additional context
None.

Arrow contains the code to parse a string --> timestamp correctly here: https://github.com/apache/arrow-rs/blob/master/arrow/src/compute/kernels/cast_utils.rs#L69
This ticket would likely be a matter of hooking that code up into the CSV parser: https://github.com/apache/arrow-rs/blob/master/arrow/src/csv/reader.rs
So most of the code in this PR might best belong in arrow-rs rather than datafusion

I would like to pick this up. Please assign to me as appropriate // @alamb

I have an example of this now on https://github.com/novemberkilo/arrow-datafusion/commit/d9f096a5ececcb8fdef6cc74761b782d33e02799
To reproduce, follow the directions in benchmarks/README.md to get a ballista-scheduler and ballista-executor going locally, then do
cargo run --release --bin nyctaxi -- --iterations 3 --path benchmarks/data/nyctaxi_100.csv --format csv --batch-size 4096

https://github.com/novemberkilo/arrow-datafusion/commit/d9f096a5ececcb8fdef6cc74761b782d33e02799 <-- looks very cool 👍

🤔  I wonder if this issue is now done? Or does it need more work?

iirc we just wanted to wait until we could confirm that the version of arrow-rs that contains the fix is being used in datafusion. I don't think it needs more work.


BuildFlags for -race

I would like to build with -race flag (or any other).
Thanks !

A PR would definitely be welcome! :)

Then, do you think -i and -v should be kept in the code or in the config file by default ? -race should be by default also isn't it ?

I think -v and -i should definitely be defaults. Here's what I think. I think we should add a build_flags to the config. If it's present it those flags should be used. If it's not present, then a default of -i and -v should be used, which is the current behavior.

I think it's better if they are explicit in the config file and by default written with init
If not it's ambiguous if build_flags: [] will be different as nothing (don't know if I'm clear)
I mean I just need to add 	BuildFlags:         []string{"-v", "-i", "-race"}, in init.go
A PR will be easier to see...

I think it's fine to write them into the config when running init, I think that's the right choice. However, I want to maintain backward compatibility. There are a lot of config files out there that don't have build_flags in them. So keep the functionality consistent if there build_flags isn't in the config then we should continue to use -v -i as default values.


Regression in Upgrade header handling

See https://github.com/iojs/io.js/issues/627 and https://github.com/iojs/io.js/pull/628 for background.
In a nutshell, 2.4.1 doesn't like uncommon Upgrade header formats.  The regression test in https://github.com/iojs/io.js/pull/628 is a good example.
/cc @indutny

"Uncommon" here means "invalid" since both Connection: upgrade and Upgrade: ... are required according to RFC 7230 (second paragraph). Unless we're wanting to support broken clients.... but are there real cases of that out in the wild where clients only send Upgrade?
On a semi-related note, Upgrade headers must also be ignored if received from an HTTP 1.0 client. I'm guessing this should be handled at the parser layer?

@mscdex all of your comment is correct, except that I have introduced an unintentional behavior change. This means that there could be some bug that I have overlooked.

Nah, I see now where this behavior was introduced 091ebb87 . @bnoordhuis on a second thought I think that @mscdex is right about it as the change was quite intentional.
@bnoordhuis Why do we want to support this?

Not a regression.


add 'show me on leaderboard button' to settingspage

closes #162
displays a switch on the settingspage allowing the logged in user to toggle their 'privacyActivated' field
@jonasanker does the backend omit people with this field set to 'true' in the backend or should it be handled in the frontend? I do believe it would be better to handle in the backend as we only receive names and scores from the API call. Thoughts?

@fremartini When a user has set privacy to true, they are either omitted or listed as anonymous on the leaderboard. I can not remember which it is but the frontend shouldn't need to do anything

@fremartini When a user has set privacy to true, the backend either omits or lists the as anonymous on the leaderboard. I can not remember which it is but the frontend shouldn't need to do anything

Cool, then i think this feature is done

@jonasanker @marfavi please review


[Ceres Solver] update to <2.2.0>

Library name
Ceres Solver
New version number
2.2.0
Other information that may be useful (release notes, etc...)
No response

Duplicate of https://github.com/microsoft/vcpkg/issues/34483


Cookie and session keys don't persist across server restarts.

Description
Every time server restarts Support::CachingKeyGenerator generates new keys causing session, and cookies to all become invalid. This is a bug since rails, sinatra, phoenix, laravel, and hanami all have persistent keys usually set via Env or secrets.yml.
Steps to Reproduce

Create an action and set a session.
Created another action which reads and prints the session.
Run server and visit both pages.
Restart the server and refresh the session printing page without visiting the session writing page first.

Expected behavior: Session should print.
Actual behavior: Session is nil.
Reproduces how often: Everytime.
Solution
I can work on this while working on environments and secrets. My suggestion would be to pull these keys from secrets and only generate them if they're missing.

This bug is pretty annoying since every code change will log me out of my website.

Should we add amber g secret command?

I'm working on that.
On Aug 28, 2017 8:55 AM, "Elias Perez"<EMAIL_ADDRESS>wrote:

Should we add amber g secret command?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/amber-crystal/amber/issues/194#issuecomment-325376912,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHmpP-3G4jywmBRqXtOXBh6CykdOAtFks5sctTDgaJpZM4PDvHR
.

Whats the progress on this?


Improve the UX of the capacity field

Having a checklist in the P field is not the best. The best would be for him to select a maximum capacity and then compare it to the customer choice in the filter.

@scottyzen any update? :)

Update
I have added the slider and styled it to fit in with the brand's colors.
Next step will be connecting it with the API and the form.


Feature/show categories

Show the categories with the id asked

LGTM, Just some additional commits that were not supposed to be there.


WebSocket event listeners not called if table is originally empty

Sails version: 1.0.0-46
Node version: v8.9.4
NPM version: 5.7.1
DB adapter name: N/A
DB adapter version: N/A
Operating system: macOS 10.13.3

I'm new to Sails and to node in general, but I have spent a lot time trying to figure out why WebSocket messages via the ORM's (model) publish method are not reaching the client.  It appears that publish events are not triggered for tables if they are originally empty.  If the table has at least one record, the client event listener is called.  As you might imagine, since most of the tables are not empty it took me some time to realize what was going on.
client code:
angular.module('Test', []).controller('BaseCtrl', function($scope) {
    io.socket.get('/walkin', function(result) {
        console.log('walkin', result);
    });

    io.socket.on('walkin', function(event) {
        // this does not get called if the 'walkin' table is empty
        console.log('walkin event', event);
    });

    $scope.createWalkin = function() {
        var data = {walkin_id: '03421d52f8160500:211', session_id: 211, visitor_id: '03421d52f8160500'};
        io.socket.post('/addWalkin', data, function(resData, jwRes) {
            jwRes.statusCode; // => 200
        });
    };
});

server code:

module.exports = {

    addWalkin: function(req, res) {
        var data = req.body;
        console.log('data', data);
        Walkin.findOrCreate({walkin_id: data.walkin_id}, data).exec(function(err) {
            if (err) return console.log('error', err);
            Walkin.publish([data.walkin_id], {data: data, verb: 'created', id: data.walkin_id});
        });
        res.json({done: 1});
    }

};

I believe I figured out why this is. What the io.socket.get('/foo') does is automate the process of subscribing to each of the records that are originally in the table when the request is made. The io.socket.on('foo') listener will only receive messages for only those records.
As many times as I viewed videos and read the documentation, this was not clear to me. IMO the documentation can be improved here.
Turns out I was able to accomplish what I wanted (subscribe to all existing and future records) by using sails.sockets.broadcast() and sails.sockets.join() directly instead of relying on sails.js magic.


ValidateVulkanCombineBuiltInExecutionModelDataTypeResult tries invalid shader

When this test is instantiated with storage class UniformConstant it generates an invalid shader - here's an excerpt:
%built_in_type = OpTypeStruct %u32arr2
%built_in_ptr = OpTypePointer UniformConstant %built_in_type
%built_in_var = OpVariable %built_in_ptr UniformConstant
%data_ptr = OpTypePointer UniformConstant %u32arr2
Vulkan 14.5.2 says the type of a UniformConstant must be "OpTypeImage, OpTypeSampler, OpTypeSampledImage, or an array of one of these types."  The validator hasn't checked this until now but I'm adding that for #1949.
Can I remove the problem instantiation, or do I need to fix it?

I can save this test my making a special case for UniformConstant.
Does that sound worth doing @alan-baker ?

Can you change the storage class to Uniform and maintain the spirit of the test?

yep, that's what happened in a362e60d5acecd9592bf4ae67a60ac2da9da1a07


Add vscode-remote-try-shellscript

Here is a Try Out Bash Shell Script project.
https://github.com/zcsizmadia/vscode-remote-try-shellscript
The .devcontainer enables bash shell script:

Running
Debugging
Intellisense
Code snippets

README.md points to the  expected  final Github location, however the example itself is still at https://github.com/zcsizmadia/vscode-remote-try-shellscript. I am not sure what the process is to create a PR for a new repository.

Thanks for opening this!
As a heads up, our team has been actively focused on an updated plan for community contributions and this repo moving forward, which we've now outlined in this issue: https://github.com/microsoft/vscode-dev-containers/issues/1589. This includes moving to a couple new repos for images (https://github.com/devcontainers/images) and Features (https://github.com/devcontainers/features).
We anticipate to have a similar repo and distribution process for templates/definitions. We'll keep everyone updated (likely via another issue in this repo or comment on https://github.com/microsoft/vscode-dev-containers/issues/1589) when our new templates repo is available and the process is defined.
Please let me know if you have any questions, thank you!


Add 'try' warning

The word 'try' is also a word we should ban from our mails. Let's DO instead !

This is awesome!
Can you send us the link to the Zoe B article?

Tami Reiss
CEO
Cyrus Innovation http://www.cyrusinnovation.com/
212-647-7186
Agile Reinforcement to accelerate your development
Dedicated to respect and diversity
@tamireiss / @cyrusinnovation
Learn about the difference between the Cyrus way
http://www.cyrusinnovation.com/differences-between-xp-vs-scrum-agile/ and
other consultancies.
On Sun, Jan 3, 2016 at 1:46 PM, Thomas Brenard<EMAIL_ADDRESS>wrote:

The word 'try' is also a word we should ban from our mails. Let's DO
instead !
[image: capture d ecran 2016-01-03 a 19 44 11]
https://cloud.githubusercontent.com/assets/9135958/12080154/84213cc8-b252-11e5-8a89-4e9ec41e9ba5.png
You can view, comment on, or merge this pull request online at:
https://github.com/cyrusinnovation/just-not-sorry/pull/7
Commit Summary

Add 'try' warning

File Changes

M README.md
https://github.com/cyrusinnovation/just-not-sorry/pull/7/files#diff-0
(1)
M src/Warnings.js
https://github.com/cyrusinnovation/just-not-sorry/pull/7/files#diff-1
(6)

Patch Links:

https://github.com/cyrusinnovation/just-not-sorry/pull/7.patch
https://github.com/cyrusinnovation/just-not-sorry/pull/7.diff

—
Reply to this email directly or view it on GitHub
https://github.com/cyrusinnovation/just-not-sorry/pull/7.

Thanks!
Here it is: http://www.lifehack.org/articles/communication/7-things-not-to-say-and-7-things-to-start-saying.html
I've put it in the README with the other links.

Great! We wrote Zoe to get her research (beyond the all knowing Yoda) of
why "try" is such a big problem.

Tami Reiss
CEO
Cyrus Innovation http://www.cyrusinnovation.com/
212-647-7186
Agile Reinforcement to accelerate your development
Dedicated to respect and diversity
@tamireiss / @cyrusinnovation
Learn about the difference between the Cyrus way
http://www.cyrusinnovation.com/differences-between-xp-vs-scrum-agile/ and
other consultancies.
On Mon, Jan 4, 2016 at 4:47 AM, Thomas Brenard<EMAIL_ADDRESS>wrote:

Thanks!
Here it is:
http://www.lifehack.org/articles/communication/7-things-not-to-say-and-7-things-to-start-saying.html
I've put it in the README with the other links.
—
Reply to this email directly or view it on GitHub
https://github.com/cyrusinnovation/just-not-sorry/pull/7#issuecomment-168626098
.

Going to merge this in after a small change to the message. (Shortening it to just the Yoda quote).


structure of CONNECTION-STRING-POSTGRESQL

Hi. Very good work!
I am trying to prepare a demo instance using this connection string:
database                  : postgres:postgres@<IP_ADDRESS>:5432/helpdesk
I got the error:

error: password authentication failed for user "postgres"

But the user/pass is ok. Can you please help me?

Self answered :)
database                  : postgres://postgres:postgres@<IP_ADDRESS>:5432/helpdesk


getAvailableCurrencies method for ProviderInterface

What about having a getSupportedCurrencies method for ProviderInterface ?
Looks like such list is available calling https://api.fixer.io/latest with no parameters.
Would be great to have a method to get this.

good idea.


Add .Site.IsServer to determine if the site was built in server mode

As per the following Discourse discussion:
https://discourse.gohugo.io/t/disable-portions-of-content-while-developing/10860
It would be helpful to put a condition into a template that can determine whether the page is being built/server by hugo server (and not necessarily with the -D flag, for which there is already a variable).
This would be helpful for the case where you want to test the site in its final form (no drafts) but want to switch off, e.g. analytics or ads.

I was going to add this option to SiteInfo but I faced a problem, Is it required to write anything else more than adding IsServer field to SiteInfo struct and adding it to the initializeSiteInfo()? Cause I get error can't evaluate field IsServer in type *hugolib.SiteInfo when I want to test it.
I'm not familiar with Hugo's code that much and I think I'm missing something :smile:

But isn't this already possible by simply checking if .Site.BaseURL is "localhost"? I do that all the time.

But isn't this already possible by simply checking if .Site.BaseURL is "localhost"? I do that all the time.

Not if you run your server with something other than "localhost". I do that all the time. You could, of course, adjust that logic to also check for that hostname, but thaw would hardly be very portable.


Adding group by to the aggregator for the metrics query.

Multi-region Cloud Spanner deployments were over-reporting on metrics in the poller because the metric value for each location was being summed.  For example, if every location was seeing 5% the reported CPU utilization was 15%, this could even cause observed utilization to be greater than 100%.
To resolve this issue a group_by has been added to the aggregator and the maximum metric values is selected across regions. This allows a scaling event to be triggered if a read-only region crosses the threshold, keeping all regions below the utilization threshold.

The logs will now include location, so we can see what region is causing scaling events for multi-regional deployments
----- <project-id>/autoscale-test: Getting Metrics -----
Get max high_priority_cpu from <project-id>/autoscale-test over 5 minutes.
high_priority_cpu = 2.3329512316740555, threshold = 65, margin = 5, location = us-central1
Get max rolling_24_hr from <project-id>/autoscale-test over 5 minutes.
rolling_24_hr = 1.8298442569345388, threshold = 90, margin = 5, location = us-central1
Get max storage from <project-id>/autoscale-test over 5 minutes.
storage = 0, threshold = 75, margin = 5, location = global
----- Published message to topic: projects/<project-id>/topics/scaler-topic
----- <project-id>/multi-region: Getting Metrics -----
Get max high_priority_cpu from <project-id>/multi-region over 5 minutes.
high_priority_cpu = 2.8891162794043446, threshold = 45, margin = 5, location = us-central2
Get max rolling_24_hr from <project-id>/multi-region over 5 minutes.
rolling_24_hr = 0.07862208334233332, threshold = 90, margin = 5, location = us-central1
Get max storage from <project-id>/multi-region over 5 minutes.
storage = 0, threshold = 75, margin = 5, location = global

autoscale-test is a regional deployment (us-central1)
multi-region is a multi-regional deploy (nam10)


Function not splitting objects properly

I have created a function for a stream that should obtain a message with an object that has an array in it and sends back to the stream a message for each one of the objects contained in the array.
Instead the current implementation causes only a single message to be sent down the line, the first element.
The function:
@SpringBootApplication
@FunctionScan
public class App {

    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }

    @Bean
    public Function<Flux<ItemList>, Flux<Item>> function() {
        return f -> f.flatMap(l -> Flux.fromArray(l.getItems()));
    }
}

I have created a repo that reproduces the issue with two Junit tests. One that only tests the function which works fine and one that tests providing a message and obtaining a response which fails.
The the test result can be seen in travis.
Java: Java 1.8.0_151
Cloud dependencies: Finchley.RELEASE
Spring Dependencies:

spring-boot-starter
spring-cloud-function-stream
spring-cloud-stream-binder-rabbit
spring-boot-starter-test

Please let me know if I need to provide any further information.

Actually, splitting is just fine, but it returns the last Item in Flux. Looking . . .

Also, keep in mind that while we'll address it as a maintenance issue for 1.x the spring-cloud-function-stream module has been removed from the master as we are working on more robust streaming support.

Thank you very much for the rapid response. Where could I find information on the future ways to work with function and streams?

@javiersvg it's not available at the moment, but will be coming shortly. It's related to a new approach to a binder in general where Flux<Message> will be bound as close as possible to the actual source instead of via `@StreamListener' (which in your case is partial source of the problem)

@javiersvg just an FYI. We've just released 2.1.0.M1 of Spring Cloud Stream and are beginning to work on M2 which will include the initial convergence of spring-cloud-function and spring-cloud-stream, new binder support and few more things. So, please track it's progress both here and spring-cloud-stream.

I will thank you very much @olegz

I believe this has been resolved over time. Please feel free to re-open it or open new issue if you still see problems


Stack data should be freed for while statements after the expression …

Stack data should be freed for while statements after the expression is parsed.
Fixes #1873 .
JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik<EMAIL_ADDRESS>

Could we add a test case for this?

@galpeter According to your comment I've added a new test case.


Feature request 'Poe'

can you add support for Poe platform which include some useful AI bots, here's the api https://github.com/ading2210/poe-api

Hi there,
As I don't use Poe frequently, I currently do not have any plans to include Poe functionality. However, you may want to try out this repository as an alternative solution.

Thanks bro for your time and hard word , and also for the repo you recommended for me


beforeRouteUpdate not work when different routes route to same Component

Version
4.0.0-beta.7
Reproduction link
https://codesandbox.io/s/vue-router-next-beforerouteupdate-qpclb
Steps to reproduce

Have different routes points to the same Component
Register beforeRouteLeave, beforeRouteEnter and beforeRouteUpdate
Switch between router-link, you would not receive all navigation event

What is expected?

Click on 1, shows "leave /app/1" and "enter /app/1"
Click on 2, shows "update /app/2"
Click on Home, shows "leave /" and "enter /"

What is actually happening?

Click on 1, shows "leave /app/1" and "enter /app/1"
Click on 2, nothing shows
Click on Home, shows "enter /"

When you have routes like this
routes: [
  { path: '/', component: Foo },
  { path: '/app/:matchAll(.*)', component: Foo },
],

and Component Foo registers beforeRouteLeave, beforeRouteEnter and beforeRouteUpdate like this
beforeRouteUpdate(to, from, next) {
  console.log('update', to.path)
  next()
},

navigate to / (tigger enter)
then /app/1 (tigger leave and enter)
then /app/2 (should trigger update but not)
then / (should tigger leave but not)

I forgot to say a workaround is to key the router-view:
<router-view :key="$route.path" />

@posva <router-view :key="$route.path" /> This seems to make keepAlive invalid


Parameters list for compatibility for spikeinterface

Hi, is there a list of spike sorting parameters in the code somewhere that I can directly reference in my spikeinterface jobs? Reading the documentation, the parameters are organised into sorting schemes, but I would like to know if I can extract the actual parameters corresponding to these schemes. Right now, I only have two parameters implemented (filter, whiten) in my json file which seems to work fine:
    "sorter_params":
    {
        "mountainsort5":
        {
            "filter": false,
            "whiten": false
        }
    },

However, I can't easily find the full list of adjustable parameters within the source code.
For instance, I'd like to know if there is a parameter to handle multiple cores (in ms4 I believe it was num_workers, but I can't find something similar in ms5).
Otherwise, ms5 seems to be much faster than ms4, which is very exciting.
Many thanks for your time.

As a follow-up, are these all of the available modifiable parameters in ms5 (class Scheme2SortingParameters)?:https://github.com/flatironinstitute/mountainsort5/blob/3e8507683a11bc92472d01932ee0b6f43587047a/mountainsort5/schemes/Scheme2SortingParameters.py#L8

Yes.
See here for the list of ms5 parameters in spikeinterface
https://github.com/SpikeInterface/spikeinterface/blob/main/src/spikeinterface/sorters/external/mountainsort5.py
BTW, it's very important to do filter and whiten in ms5

Great, thanks; yes, I do filtering and whitening as a separate pre-processing step. Closing this thread now.


Add Leather Water Sac?

Hello,
Did you think about adding Leather Water Sac to the modlist?
TNFC is all about advancing in technology far more than pure TFC allows.
If you feel the sacs are too easy to obtain, change the recipe, but it would be a really great add-on.

Already queued up for next update.


why are they all installed and updated,but still not found?

hi, i got error as follows
When loading the graph, the following node types were not found:
VHS_LoadVideoPath
VHS_LoadImagesPath
VHS_VideoCombine
LineArtPreprocessor
Nodes that have failed to load will show as red on the graph.
but they are all installed and updated.  the manager page shows only two options :disable and uninstall.
they were fine before, but after I installed IPAdapter_plus,tinyterraNodes,FizzNodes and reactor-node today .  they two above went wrong.

I meet the same problem, your answer is useful, thank you!


How to log to Visual Studio IDE output window

Just a simple noob question,
How to log to Visual Studio IDE output window?
I have a NUnit test, and I want to log some info to Visual Studio IDE output window during test execution. I've traced NUnit's own logging (to Visual Studio IDE output) to this project, but I can't make it works myself. E.g., I tried, among many other things,
Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessage("My own IDE output window log message");

but none is working for me.
Or, what IMessageLogger I should use (that is for Visual Studio IDE output), when initializing my own logger like the following?
https://github.com/nunit/nunit3-vs-adapter/blob/d8943d87ecccc097224494f905df287d79f097b3/src/NUnitTestAdapter/NUnitTestAdapter.cs#L121
Please help. Thanks!

@suntong there is only one way today (and we don't want any other message to flow in test output window because it will have too many messages in the window which will confuse users
The only way (and I suggest we use that only for debugging) is Console.Error.WriteLine("test");
Normal Console.WriteLine("") messages wont flow to test window output. but they will flow to output of test case

That looks like a normal Unit test instead of a NUnit test, which is easy to write to (using Debug.WriteLine) because of that "Output" link. A NUnit test doesn't have that:

That's why I need them to be in Visual Studio IDE output window as posted above:

it is a nunit test
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace nunit
{
public class Class1
{
[Test]
public void Test1()
{
//   Console.Error.WriteLine("test");  // this prints in output window
Console.WriteLine("test"); // this shows in test window output as image attached in my previous reply
}
}
}

Gotya! Thanks a lot for helping!!!


Error after test has passed is not catched

If a test has passed succesfully but a error is logged after all assertions, this is not catched by the utility.

Do you have an example of such a case?

Do you have an example of such a case?

This works as expected:
it('tests something', () => {   console.error('hello');   expect(1).toEqual(1); });
But if the error comes from something asynchronous that errors after the assertion has successfully passed, catching the error won't happen. Something like this:
it('tests something', () => {   setTimeout(() => {       console.error('hello');     }, 100);   expect(1).toEqual(1); });

The issue is that the console error happens when the rest is supposed to be finished.
Having something run later like this without telling Jest about it is error prone.
You can use the done callback to handle this properly: https://jestjs.io/docs/asynchronous#callbacks

I ran into this problem unexpectedly and Jest is able to show me these errors but this utility is not able to make the test fail because of this error. And since it was unexpected I might not be able to take it into account using callbacks. So the problem I have is that I get an error that I'd like to have fixed before a PR is merged but Github actions is unable to let me know this happens because I'm not able to make the test fail even though there is an error.
I understand that this is problematic. Do you have any suggestions or is this just something I have to live with not being able to catch these in my Github actions?

I'm not sure there is much we can do. Indeed, the lib relies on the afterAll callback from Jest. If the error happens after Jest calls it, we will not be able to detect it.

I'm not sure there is much we can do. Indeed, the lib relies on the afterAll callback from Jest. If the error happens after Jest calls it, we will not be able to detect it.

I appreciate you taking the time to reply in a quick manner. Thanks! I'll close this one.

You are welcome. Thank for your understanding!


✨(search) Scroll search filters more options

Purpose
It is often the case that facet categories in course search have a lot of possible filter values.
We initially built the <SearchFilterGroupModal /> to enable users to search through those values. However, we did not set up pagination.
As it turns out, users want to be able to move down the list to get to the value they want.
Proposal
Implement infinite scrolling in the modal using react-query and IntersectionObserver to make it as effortless as possible for users.

@mbenadda do you think it's possible and a good idea to set a focus on the search field when the modal opens?

I generated a site with 200 organizations.
When I search for an organization in the "more choices" modal box, I type a few letters that I see in an organization, then results all contain the few letters. But if I scroll down and trigger a load for more results, the new results do not contain those 3 letters :thinking:

@mbenadda do you think it's possible and a good idea to set a focus on the search field when the modal opens?

@sampaccoud  only on desktop mode, if on mobile it opens the keyboard that occupies half the screen.

@sampaccoud I think it's just an artifact of search happening in different languages all at once, as scrolling pagination does not affect search results at all (query here: https://github.com/openfun/richie/blob/master/src/richie/apps/search/forms.py#L329). And I checked "unexpected" results locally and found they contained the given string in a different language.


HoloLens Insider preview: typo corrections

Description:
As pointed out in issue ticket https://github.com/MicrosoftDocs/windows-itpro-docs/issues/7082 (Typo in Windows Insider Release docs), there is at least one typo in this document page: "avalible" (instead of available).
Thanks to Shiv Swaminathan (@sshiv) for pointing out the typo.


GH-45059: [C++][CI] Fix test-build-cpp-fuzz failures

Rationale for this change
The CI requirements file in the OSS-Fuzz repo pins an old PyYAML version that fails installing on Python 3.12:
https://github.com/google/oss-fuzz/blob/4161b2267f39e32f32e122501b7b82f9bc28caea/infra/ci/requirements.txt
What changes are included in this PR?
Use a Python version compatible with the requirements.
Are these changes tested?
Yes, by definition.
Are there any user-facing changes?
No.

GitHub Issue: #45059

@github-actions crossbow submit test-build-cpp-fuzz

+1, will merge


TrailingSlash using rewrite for a fetch call results on infinite loop

Fixes: https://github.com/sst/open-next/issues/279

Fixed eslint.


Flask reloader adds stdout buffering when used with supervisord

Sorry for long report, this took a while to debug. I'm not an expert on how reloading works, so hopefully someone can explain what is happening. This only happens when I use Flask's reload while launching flask using supervisord, so if it ends up being a supervisord bug I will refile it on their bug tracker, but the problem only appears when using flask's reloading feature.
Here's my simple flask app:
from flask import Flask

app = Flask(__name__, static_url_path='')

@app.route('/start')
def start_build():
  print "Running command"
  return "Starting"

if __name__ == "__main__":
  app.run(debug=True)

As you'd expect, this generates the following output
hamiltont$ python example.py
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
 * Restarting with stat
Running command
<IP_ADDRESS> - - [04/Apr/2015 18:58:13] "GET /start HTTP/1.1" 200 -
Running command
<IP_ADDRESS> - - [04/Apr/2015 18:58:42] "GET /start HTTP/1.1" 200 -
Running command
<IP_ADDRESS> - - [04/Apr/2015 18:58:44] "GET /start HTTP/1.1" 200 -

This output is generated correctly for all combinations of python vs python -u and use_reloader=True vs use_reloader=False.
Now I try to run the application (with reloading enabled) using supervisord and this supervisord.conf file
[supervisord]
nodaemon=true

[program:flask]
command=python -u example.py

; Send stdout to console
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0

; Send stderr to console
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

; Flask does not propagate signals to child processes when using debug
; mode, so this tells supervisor to send the signal to the entire
; process group instead of just the parent
stopasgroup=true
; Send interrupt so the server is shutdown gracefully
stopsignal=INT

Note that I'm intentionally specifying python -u in my command, just to avoid issues. Here's the output:
hamiltont$ supervisord -c super.conf
2015-04-04 19:02:59,762 INFO supervisord started with pid 22439
2015-04-04 19:03:00,769 INFO spawned: 'flask' with pid 22442
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
 * Restarting with stat
2015-04-04 19:03:01,939 INFO success: flask entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
<IP_ADDRESS> - - [04/Apr/2015 19:04:07] "GET /start HTTP/1.1" 200 -
<IP_ADDRESS> - - [04/Apr/2015 19:04:11] "GET /start HTTP/1.1" 200 -
<IP_ADDRESS> - - [04/Apr/2015 19:04:11] "GET /start HTTP/1.1" 200 -
^C
2015-04-04 19:04:14,198 WARN received SIGINT indicating exit request
2015-04-04 19:04:14,198 INFO waiting for flask to die
Running command
Running command
Running command
2015-04-04 19:04:14,209 INFO stopped: flask (exit status 0)

So until I hit Ctrl-C to terminate, the stdout was being buffered. If I disable reloading, then everything works as expected:
hamiltont$ supervisord -c super.conf
2015-04-04 19:06:49,711 INFO supervisord started with pid 22462
2015-04-04 19:06:50,715 INFO spawned: 'flask' with pid 22465
 * Running on http://<IP_ADDRESS>:5000/ (Press CTRL+C to quit)
2015-04-04 19:06:52,268 INFO success: flask entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Running command
<IP_ADDRESS> - - [04/Apr/2015 19:06:54] "GET /start HTTP/1.1" 200 -
Running command
<IP_ADDRESS> - - [04/Apr/2015 19:06:57] "GET /start HTTP/1.1" 200 -
Running command
<IP_ADDRESS> - - [04/Apr/2015 19:06:58] "GET /start HTTP/1.1" 200 -
^C
2015-04-04 19:07:03,959 WARN received SIGINT indicating exit request
2015-04-04 19:07:03,960 INFO waiting for flask to die
2015-04-04 19:07:03,968 INFO stopped: flask (exit status 0)

I can also generate the expected output by manually wrapping stdout at the top of my example.py file
import sys
import os
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)

Are you trying to run the dev server in production? Because that's a terrible idea.

Ha, no, that's definitely not what I'm doing

It's a bug in Flask's dependency Werkzeug, but to my knowledge it's also impossible to fix. My advice would be to explicitly restart the server in your deployment scripts.
I don't get why you're starting the dev server via supervisord though.

@untitaker Good to know. Can you link me to the bug report? I'd like to read it. So far my workaround is to just check if I'm running flask in debug mode and wrapper stdout, and that has been working fine.

I don't get why you're starting the dev server via supervisord though.

My system has 5+ components needed when turning on/off. They mostly need to be restarted together. Its unfeasible to cycle through terminals just to be able to say "restart everything". I first used some bash scripts, but that's fairly inflexible, so switched to supervisor. It enables me to actually develop quicker than a snail

Good to know. Can you link me to the bug report? I'd like to read it.

There is none, only related bugs in Werkzeug (perhaps under the "reloader" label). I'll try to summarize the main problem here:
Take a look at this line in Werkzeug:
 args = [sys.executable] + sys.argv

That's Werkzeug's attempt at recreating the original command that was used to start the server, As you can see, it doesn't take any options for the Python command itself into account.

If all you need is -u to be active, simply set PYTHONUNBUFFERED=1 in your environment. That does the same as -u.

Great, thanks for the help!!

If anyone finds this in the future, you can call
sys.stdout.flush()
after print to correct this behavior.


Lomota garage door opener no longer reliably opens

Checklist

[x] I have read the common issues wiki page
[x] I have checked to make sure the plugin is up to date

Describe the bug
While my garage will open/close sometimes, it seems to no longer reliably do so after the latest update. I see no error/warnings in the logs to indicate something is wrong, but the garage remains stuck either open or closed when I attempt to control it in the Home app. Only after manually opening/closing the door with my RF garage opener will the app start responding again.
To Reproduce
Updated to the latest version of plugin (3.1.0).
Expected behavior
Garage door opens/close on demand.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: Raspbian
iOS version: 17.3.1
Homehubs: Apple HomePod
Node Version: 20.10.1
Plugin Version: 3.1.0
Accessory Type: Lomota Garage Door Opener

Im having a very similar issue but with eKyro as the manufacturer.  I seems like a broader issue with garage door control.

Just as a follow up to this.  I resolved this issue by removing the device in the Tuya app and re-adding it.  This effectively re-establishes a new local key.  I've updated the new local key in HB plugin config and all works now with my garage door.

That solution doesn't make sense to me...why would refreshing the local keys fix this? I feel like it shouldn't work at all if that was the issue, but in my case it works sporadically.

Honestly, I have no idea.  I’ve had it up and running for 2 days since I’ve done this configuration change and it has been working consistently.  Perhaps, my issue is completely unrelated to yours?

Another update....This issue has resurfaced...Also, in the form with other devices (eg. a EGBW Light...similar to issue #443.).  I also have the Tuya integration to HomeAssistant which devices are showing as unaffected.

I am just thinking but could be this related to the new local keys?
the new keys have very random sign. Could be one of those generating issues? For example if the local key has a quotation mark, this (maybe) is not properly managed during all the pipeline.
In this scenario, the suggestion made by @guillochon would make sense as when refreshing in it, you are changing the characters.

I have no clue how the keys are managed by the different processes. So I can be wrong

My local key has only alphanumeric characters. The problem is still here and I'm tempted to downgrade to the prior version where it worked, but I'm worried my config might get entirely ruined by downgrading (I know at the very least I'll have to re-add all my devices to all my automations, which I'd really rather avoid).
Is there any chance this will get addressed any time soon?

I have a little more insight on this problem, but no solution: it appears that whenever we use our regular garage door opener (the remote or the keypad), the homebridge extension gets "out of sync" and seems to think the door is the opposite state. Only once the garage has been reverted manually to the correct state does the plugin work again. So I think this is an issue where the plugin is not properly tracking the garage door state anymore as of the new update.
If a dev could take a look at this I'd really appreciate it, been debating downgrading the plugin but reaaally don't want to do that to have to re-add my devices to all the automations again. @05TEVE

Hi @guillochon ,
The timeout issues people are seeing in #443 I believe may be related to either the logic for the local key changes introduced in 3.10 (Merged in to allow new devices to be added at all) or the Tuya protocol that the device is using. When homebridge starts, does the device say 3.3 or 3.4 in the log? I am not sure if rotating the keys will help if you are still using one of the original keys. Are there any timeout errors at all in the log? Or is it just getting out of sync? If the timeout errors aren't there my guess is that this is unrelated to that.
As far as i can tell, there hasn't been any major changes to the Garage door code since 2.0.1 other than logging fixes. I have found a few issues popping up in other areas though as I cut the new version off of the latest master. This unfortunately however had a large number of changes from the 2.1.0 Beta that were never fully rolled out. Are there any messages in the homebridge debug logs when the issue is occurring? (i.e does it receive the notification but not process it correctly).
Debugging this sort of thing is rather challenging without having the device myself unfortunately however i'll see if i can see anything obvious in the code.

Hi @05TEVE, thanks for replying.
When the plugin starts I see the following:
Discovered Garage Door (xxx) identified as GarageDoor (3.3)
I do not see any timeout errors in the logs.
Here is the config I have for the garage door. I am not sure if I am using the right DpStatus or DpAction settings here, I think they are correct looking at the Tuya page but again, not sure. As I said it does work unless the physical button is used to toggle the door. Anything here look amiss?
                {
                    "type": "GarageDoor",
                    "name": "Garage Door",
                    "id": "censored_but_only_alphanumerics",
                    "key": "censored_but_only_alphanumerics",
                    "manufacturer": "Lomota",
                    "model": "MSG100",
                    "dpAction": 1,
                    "dpStatus": 101,
                    "flipState": false
                },

It is possible I had used a modified version of this plugin (not the main branch) to get the garage working, I realize, but which branch I do not recall (it's also possible I'm misremembering). Sorry, this is all kinda of a mess!

On Tuya, this is what is reported for the device when I query properties:
{
  "result": {
    "properties": [
      {
        "code": "switch_1",
        "custom_name": "",
        "dp_id": 1,
        "time":<PHONE_NUMBER>024,
        "value": false
      },
      {
        "code": "countdown_1",
        "custom_name": "",
        "dp_id": 7,
        "time":<PHONE_NUMBER>159,
        "value": 0
      },
      {
        "code": "mdk",
        "custom_name": "",
        "dp_id": 101,
        "time":<PHONE_NUMBER>878,
        "value": false
      },
      {
        "code": "tr_timecon",
        "custom_name": "",
        "dp_id": 102,
        "time":<PHONE_NUMBER>159,
        "value": 12
      },
      {
        "code": "countdown",
        "custom_name": "",
        "dp_id": 103,
        "time":<PHONE_NUMBER>094,
        "value": 0
      }
    ]
  },
  "success": true,
  "t":<PHONE_NUMBER>389,
  "tid": "xxx"
}

I don't see anything here that's obvious "DpStatus", I currently use 101 but here it's listed as "mdk".

A little more testing: when I use the homebridge plugin to toggle the garage state, the mdk item toggles between true and false when the door is opened/closed. When I open my door manually however, the door's state does not toggle, and then the next time I try to use the homebridge plugin it doesn't do anything, even though in the Home app it properly shows the state of the door.

@guillochon Im seeing the exact same behaviors on my side.  I dont have an mdk property however...I use dps 1 and 3 for action and status respectively...
{
"result": {
"properties": [
{
"code": "switch_1",
"custom_name": "",
"dp_id": 1,
"time":<PHONE_NUMBER>130,
"value": false
},
{
"code": "countdown_1",
"custom_name": "",
"dp_id": 2,
"time":<PHONE_NUMBER>064,
"value": 0
},
{
"code": "doorcontact_state",
"custom_name": "",
"dp_id": 3,
"time":<PHONE_NUMBER>867,
"value": false
},
I use protocol 3.3 as well...
Discovered Single Car Garage Door (xxxx) identified as GarageDoor (3.3)


Image Size Calculation Method

Some new methods have surfaced in which we can incorporate images into the app, and avoid a lot of now unnecessary calculations (mostly dealing with prm - pixel ratio modifier, and other aspect ratio calculations in the css file)

Working on a master fix for this which will improve scaling across all devices and eliminate floating point numbers in css

Initial task completed. Revisit again for v2.4 to refine


feat(#87): only replace disallowed characters in output filename

[ ] I have considered whether this PR needs review, and requested a review if necessary.

Fixes issue #
Notes for reviewers
Reviewers can skip X, but should pay attention to Y.

#95  👈
main

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

Join @MartinBernstorff and the rest of your teammates on  Graphite

Merge activity

Mar 30, 2:54 PM GMT+1: @MartinBernstorff merged this pull request with Graphite.


Typechain Masterplan

Here's plan for next couple of days (weeks?):

[x] improve typechain api. Add functions that will translate single file, as well as copy runtime). Releated: https://github.com/krzkaczor/TypeChain/issues/67
[x] create ts-generator - Generic, plugin based tool for creating typings (not only for smartcontracts, will work with css modules, graphql you name it)

[x] unified project config file
[x] extract all logic around globing files, fs read write, prettier support etc.
[ ] watch mode

[x] typechain test coverage
[x] switch to ts-generator  see: https://github.com/krzkaczor/TypeChain/tree/v-0.3
[x] typechain output code templates
[x] typechain truffle template (fully typesafe truffle development with watch mode and shit 🎉 )
[x] typechain web3.js 1.0 template
[ ] rewrite abi parser with support for new stateMutability parameter: Releated: https://github.com/krzkaczor/TypeChain/issues/65 I did some good progress here: https://github.com/krzkaczor/EthereumQL/tree/master/lib/parser

Abi parser moved to new task: https://github.com/ethereum-ts/TypeChain/issues/106


Hiding inherited methods in a controller

Hello, I apologise if this was asked before, if it was I would appreciate a link to it, as I could not find it myself.
I am using aspnetcore 2.0 to create a restful API service.
Now, in order to maximise code reuse I would like to use the inheritance pattern for my API version increments and I've run into a considerable problem.
Here is some pseudo-code:
namespace v1
{
    [Route("v1")]
    public class SomeController : ControllerBase
    {
        [HttpGet("something/")]
        public object SomeMethod()
        {
            return 1;
        }

	[HttpGet("athing/")]
	public object AnotherMethod()
	{
            return "a";
	}
    }
}
namespace v2
{
    [Route("v2")]
    public class SomeController : v1.SomeController
    {
        [HttpGet("something/")]
        public new object SomeMethod()
        {
            return 2;
        }
    }
}

Calling GET v2/athing/ works fine, calling GET v2/something/ throws a: AmbiguousActionException: Multiple actions matched
Thus my question, what is the appropriate way to hide inherited members in a controller?
Thank you for your time and effort.
EDIT: made the sample a little clearer.

There is no direct support for this in ASP.NET Core MVC. You might be able to write a custom controller convention to change this behavior. Here's a different sample showing some other capabilities of controller conventions: https://github.com/aspnet/Entropy/tree/dev/samples/Mvc.GenericControllers - perhaps you can use the code as a reference and adapt it to your needs.
I think if you instead make the method virtual you can then override the method, and avoid using the new keyword.
cc @rynowak in case you have other thoughts.

The problem appears due to the duplication of the HttpGet attribute, not so much implementation.
Thus my solution was to introduce an abstract class at the beginning of the stack, thus:
namespace v1
{
	public abstract class SomeAbstract : ControllerBase
	{
		[HttpGet("something/")]
		public abstract object SomeMethod();

		[HttpGet("athing/")]
		public abstract object AnotherMethod();
	}

	[Route("v1")]
	public class SomeController : SomeAbstract
	{
		public override object SomeMethod()
		{
			return 1;
		}

		public override object AnotherMethod()
		{
		    return "a";
		}
	}
}
namespace v2
{
	[Route("v2")]
	public class SomeController : v1.SomeController
	{
		public override object SomeMethod()
		{
			return 2;
		}
	}
}

Notice that the child implementations declare only route attributes, that way the httpGet of individual leafs are declared only once.
Thanks again for the time and effort (on this and on the whole mvc)


Add OS selection to configurable options

Is there a way to choose which OS a customer wants to use on their VPS?  It doesn't seem to be in the default configurable options.  Only size and location

I want this too, any update?

Is there any update for this?

Please add Choise OS Option on whmcs Module

I am not a programmer, but I added a couple of things to make it possible to choose the operating system from configurable options.
https://github.com/imiguelsalcedo/upcloud-whmcs-module/commit/a043fa1344c1b8d8f563eb84d2e5d2cba826556c?branch=a043fa1344c1b8d8f563eb84d2e5d2cba826556c&diff=split

We have just updated our module and therefor closing this issue as we considered it not being a problem anymore.
However if you thing otherwise please open a new github-issue.

This is now possible due to recent update we did into module. Feel free to open a new issue in case you have notices something not working though.


tests: re-enable Host Firewall for AutoDirectNodeRoutes test and encryption + direct routing

Issue #12205 has been fixed via #16136, and the Host Firewall can be used again in the tests. Renable those tests that we had disabled because of the issue.

test-only --focus="K8sDatapathConfig"

test-only --focus="K8sDatapathConfig"

test-1.16-netnext

test-1.19-5.4

test-1.20-4.19

test-1.21-4.9

test-gke

test-me-please

test-1.16-netnext

test-1.19-5.4

test-1.20-4.19

test-1.21-4.9

test-gke


EZCA (or equivalent) wrappers for modifying suspension parameters, matrices, or even filters.

62dfd0c
Ezca matrix getter

kontrol.Ezca now reads and write matrices.


AutoLogin after signup

Hello,
When I use signup form, I have an auto login. It's possible to stop this auto login ?
Thanks,
GJean

+1

+1

Here are the relevant lines causing the autologin after a successful registration.
Could you please propose a PR to have this under another condition based on an additional configuration parameter?
Please add a parameter here and its default value (true to keep current behaviour when not differently specified) here.
Add a short descritpion also into the guide here


sm-select onOpen/onShow event

I would like to add options to the sm-select dropdown based on the current row data inside a template.
Something like this...
<template let-data="rowData" let-i="rowIndex" pTemplate="body">
 <sm-select
	placeholder="attributes"
	[control]="attributeMaster"
	(onChange)="updateModel($event);"
        (onOpen/onShow)="loadData(data);"
	class="fluid">
	<option *ngFor="let item of selectAttributes" [value]="item.value">
	<span [innerHTML]="item.modal.displayName"></span>
</sm-select>
</template>

Please provider onOpen/onShow events for sm-select

Click event works with this control. It would be really helpful if the documentation is updated to include this event.


Show one text and one image side by side

I am trying to create something like neofetch does using bash.
I want to show one image on the right and one ascii art (using the cat << EOF myascii EOF command)
So that I can show a logo and a text on the other side.
I want to use it as my login welcome screen when I ssh some of my machines.
So I was able to show the ascii art by doing :
cat << EOF

 _____         _
|_   _|       | |
  | | ___  ___| |_
  | |/ _ \/ __| __|
  | |  __/\__ \ |_
  \_/\___||___/\__|

EOF

And showing my image using catimg myimage.png
However I try to show them both side by side. I tried using pr.
pr -m -t <(catimg) <(cat mytestfile.txt) but it doesn't work and it cuts my ascii art.
It's the same using the paste command.
Was anyone able to do it. If yes how ?
My ascii art is quiet long too so without it to be cutted it would be awesome.
Thanks for your help.

Use stack overflow for terminal related questions. Thanks!

The thing is that I asked on stackoverflow but I am not able to get any answers, and since I can't make a catimg to a file it's hard to use it.
https://stackoverflow.com/questions/64931488/show-two-things-side-by-side-using-catimg-like-in-neofetch

FYI you can catimg image.jpg > output and then cat output

FYI you can catimg image.jpg > output and then cat output

Tried it but sadly it isn't working for me :/


CI: add more github actions

TODO:

[ ] remove travis completely
[ ] update badges in README (tests and coverage)
[ ] wait for codecov to support github actions without token (sending coverage from PRs is currently not possible due to this limitation)

Codecov Report

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

@@            Coverage Diff            @@
##             master      #86   +/-   ##
=========================================
  Coverage          ?   99.12%
=========================================
  Files             ?       10
  Lines             ?     1255
  Branches          ?        0
=========================================
  Hits              ?     1244
  Misses            ?       11
  Partials          ?        0

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 1d995b4...0c76836. Read the comment docs.


[shell] Write an example to list all current txt file in given foler and save result to another txt

Under example folder of shell (https://github.com/tungbq/devops-basic/tree/main/shell/examples), create new bash script:

to list all current txt file
then save the result to another txt file
You are free to choose the filename

please assign it to me

Sure @Harshal662. Assigned it to you now

added it at grep-command branch

added it at grep-command branch

Thanks @Harshal662, but I suggest using separated branch for each task. With this, we could update/review and track them separately

okay

Please check https://github.com/tungbq/devops-basic/blob/main/CONTRIBUTING.md#proposing-changes for more details.

should i edit readme file in examples folder explaining what is the code

should i edit readme file in examples folder explaining what is the code

Yes, it would be great. Please process


TypeError at /messages/compose/: render() got an unexpected keyword argument 'renderer'

Hi,
First, thank you for this incredible library. I have installed the latest version of Django Messages and I am seeing this error when I load the Compose Page:
TypeError at /messages/compose/
render() got an unexpected keyword argument 'renderer'

I am using Django 2.2.3 and, after some searches, I found out that this error is due to this backwards-incompatible change in Django 2.1: Support for Widget.render() methods without the renderer argument is removed.
The culprit is located in django-messages/django_messages/fields.py:
class CommaSeparatedUserInput(widgets.Input):
    input_type = 'text'

    def render(self, name, value, attrs=None):
        if value is None:
            value = ''
        elif isinstance(value, (list, tuple)):
            value = (', '.join([getattr(user, get_username_field()) for user in value]))
        return super(CommaSeparatedUserInput, self).render(name, value, attrs)

The fix that I found was to change the method signature of render, so that it looks like this:
def render(self, name, value, attrs=None, renderer=None):
Would it be possible to make the rectification please?
Thank you in advance,

thank you for the report, I will take a look into this

@vonmaster I've pushed a change which should fix the problem. Please test in your environment and re-open the issue, if the problem still exists.


⚠ Bofrost.at has degraded performance

In 786457c, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2208 ms

Resolved: Bofrost.at performance has improved in 444634c after 37 minutes.