[v1.x] add nonce to the script tag for unsafe-inline

Fix: #193

@samsel not sure why build failed here. There was no issue with lint and complexity in other branche(v2.x). even if code is exactly same

@kumarrishav https://travis-ci.org/paypal/react-engine/jobs/278128155

hostname<EMAIL_ADDRESS>version: v3.0.2 https://github.com/travis-ci/worker/tree/f1c05caed79c66a9103f12a22e8a45ec66dbca64
instance: 3e3ed65:travis:node_js (via amqp)
startup: 1.105123186s
system_info
Build system information
Build language: node_js
Build group: stable
Build dist: trusty
Build id: 278128154
Job id: 278128155
Runtime kernel version: 4.11.6-041106-generic
travis-build version: 125c5d1fa
Build image provisioning date and time
Tue Aug 29 02:50:02 UTC 2017
Operating System Details
Distributor ID:	Ubuntu
Description:	Ubuntu 14.04.5 LTS
Release:	14.04
Codename:	trusty
Cookbooks Version
4642454 https://github.com/travis-ci/travis-cookbooks/tree/4642454
git version
git version 2.14.1
bash version
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
gcc version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
docker version
Client:
 Version:      17.03.1-ce
 API version:  1.27
 Go version:   go1.7.5
 Git commit:   c6d412e
 Built:        Mon Mar 27 16:58:30 2017
 OS/Arch:      linux/amd64
clang version
clang version 3.9.0 (tags/RELEASE_390/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/clang-3.9.0/bin
jq version
jq-1.5
bats version
Bats 0.4.0
shellcheck version
0.4.6
shfmt version
v1.3.1
ccache version
ccache version 3.1.9
Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2011 Joel Rosdahl
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
cmake version
cmake version 3.2.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
heroku version
heroku-cli/6.13.19-6cd27b3 (linux-x64) node-v8.3.0
imagemagick version
Version: ImageMagick 6.7.7-10 2017-07-31 Q16 http://www.imagemagick.org
md5deep version
4.2
mercurial version
Mercurial Distributed SCM (version 4.2.2)
(see https://mercurial-scm.org for more information)
Copyright (C) 2005-2017 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
mysql version
mysql  Ver 14.14 Distrib 5.6.33, for debian-linux-gnu (x86_64) using  EditLine wrapper
openssl version
OpenSSL 1.0.1f 6 Jan 2014
packer version
Packer v1.0.2
Your version of Packer is out of date! The latest version
is 1.0.4. You can update by downloading from www.packer.io
postgresql client version
psql (PostgreSQL) 9.6.4
ragel version
Ragel State Machine Compiler version 6.8 Feb 2013
Copyright (c) 2001-2009 by Adrian Thurston
subversion version
svn, version 1.8.8 (r1568071)
   compiled Aug 10 2017, 17:20:39 on x86_64-pc-linux-gnu
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.3
  - handles 'http' scheme
  - handles 'https' scheme
sudo version
Sudo version 1.8.9p5
Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p:  --without-lecture --with-tty-tickets --disable-root-mailer --enable-admin-flag --with-sendmail=/usr/sbin/sendmail --with-timedir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux
Sudoers policy plugin version 1.8.9p5
Sudoers file grammar version 43
Sudoers path: /etc/sudoers
Authentication methods: 'pam'
Syslog facility if syslog is being used for logging: authpriv
Syslog priority to use when user authenticates successfully: notice
Syslog priority to use when user authenticates unsuccessfully: alert
Send mail if the user is not in sudoers
Use a separate timestamp for each user/tty combo
Lecture user the first time they run sudo
Root may run sudo
Allow some information gathering to give useful error messages
Require fully-qualified hostnames in the sudoers file
Visudo will honor the EDITOR environment variable
Set the LOGNAME and USER environment variables
Length at which to wrap log file lines (0 for no wrap): 80
Authentication timestamp timeout: 15.0 minutes
Password prompt timeout: 0.0 minutes
Number of tries to enter a password: 3
Umask to use or 0777 to use user's: 022
Path to mail program: /usr/sbin/sendmail
Flags for mail program: -t
Address to send mail to: root
Subject line for mail messages: *** SECURITY information for %h ***
Incorrect password message: Sorry, try again.
Path to authentication timestamp dir: /var/lib/sudo
Default password prompt: [sudo] password for %p:
Default user to run commands as: root
Value to override user's $PATH with: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Path to the editor for use by visudo: /usr/bin/editor
When to require a password for 'list' pseudocommand: any
When to require a password for 'verify' pseudocommand: all
File descriptors >= 3 will be closed before executing a command
Environment variables to check for sanity:
	TZ
	TERM
	LINGUAS
	LC_*
	LANGUAGE
	LANG
	COLORTERM
Environment variables to remove:
	RUBYOPT
	RUBYLIB
	PYTHONUSERBASE
	PYTHONINSPECT
	PYTHONPATH
	PYTHONHOME
	TMPPREFIX
	ZDOTDIR
	READNULLCMD
	NULLCMD
	FPATH
	PERL5DB
	PERL5OPT
	PERL5LIB
	PERLLIB
	PERLIO_DEBUG
	JAVA_TOOL_OPTIONS
	SHELLOPTS
	GLOBIGNORE
	PS4
	BASH_ENV
	ENV
	TERMCAP
	TERMPATH
	TERMINFO_DIRS
	TERMINFO
	_RLD*
	LD_*
	PATH_LOCALE
	NLSPATH
	HOSTALIASES
	RES_OPTIONS
	LOCALDOMAIN
	CDPATH
	IFS
Environment variables to preserve:
	JAVA_HOME
	TRAVIS
	CI
	DEBIAN_FRONTEND
	XAUTHORIZATION
	XAUTHORITY
	PS2
	PS1
	PATH
	LS_COLORS
	KRB5CCNAME
	HOSTNAME
	HOME
	DISPLAY
	COLORS
Locale to use while parsing sudoers: C
Directory in which to store input/output logs: /var/log/sudo-io
File in which to store the input/output log: %{seq}
Add an entry to the utmp/utmpx file when allocating a pty
PAM service name to use
PAM service name to use for login shells
Create a new PAM session for the command to run in
Maximum I/O log sequence number: 0
Local IP address and netmask pairs:
	<IP_ADDRESS>/<IP_ADDRESS>
Sudoers I/O plugin version 1.8.9p5
gzip version
gzip 1.6
Copyright (C) 2007, 2010, 2011 Free Software Foundation, Inc.
Copyright (C) 1993 Jean-loup Gailly.
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
Written by Jean-loup Gailly.
zip version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.
Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.
Compiled with gcc 4.8.2 for Unix (Linux ELF) on Oct 21 2013.
Zip special compilation options:
	USE_EF_UT_TIME       (store Universal Time)
	BZIP2_SUPPORT        (bzip2 library version 1.0.6, 6-Sept-2010)
	    bzip2 code and library copyright (c) Julian R Seward
	    (See the bzip2 license for terms of use)
	SYMLINK_SUPPORT      (symbolic links supported)
	LARGE_FILE_SUPPORT   (can read and write large files on file system)
	ZIP64_SUPPORT        (use Zip64 to store large files in archives)
	UNICODE_SUPPORT      (store and read UTF-8 Unicode paths)
	STORE_UNIX_UIDs_GIDs (store UID/GID sizes/values using new extra field)
	UIDGID_NOT_16BIT     (old Unix 16-bit UID/GID extra field not used)
	[encryption, version 2.91 of 05 Jan 2007] (modified for Zip 3)
Encryption notice:
	The encryption code of this program is not copyrighted and is
	put in the public domain.  It was originally written in Europe
	and, to the best of our knowledge, can be freely distributed
	in both source and object forms from any country, including
	the USA under License Exception TSU of the U.S. Export
	Administration Regulations (section 740.13(e)) of 6 June 2002.
Zip environment options:
             ZIP:  [none]
          ZIPOPT:  [none]
vim version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:43:18)
Included patches: 1-52
Extra patches: 8.0.0056
Modified by<EMAIL_ADDRESS>Compiled by buildd@
Huge version without GUI.  Features included (+) or not (-):
+acl             +farsi           +mouse_netterm   +syntax
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
-clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   -perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       +python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            -ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      -sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        +mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    -xpm
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc   -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim        -lm -ltinfo -lnsl  -lselinux  -lacl -lattr -lgpm -ldl    -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions
iptables version
iptables v1.4.21
curl version
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
wget version
GNU Wget 1.15 built on linux-gnu.
rsync version
rsync  version 3.1.0  protocol version 31
gimme version
v1.2.0
nvm version
0.33.2
perlbrew version
/home/travis/perl5/perlbrew/bin/perlbrew  - App::perlbrew/0.80
phpenv version
rbenv 1.1.1-4-g4ebd1bd
rvm version
rvm 1.29.2 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]
default ruby version
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
CouchDB version
couchdb 1.6.1
ElasticSearch version
5.5.0
Installed Firefox version
firefox 55.0.2
MongoDB version
MongoDB 3.2.16
Pre-installed PostgreSQL versions
9.2.22
9.3.18
9.4.13
9.5.8
9.6.4
RabbitMQ Version
3.6.11
Redis version
redis-server 4.0.1
riak version
2.2.3
Pre-installed Go versions
1.7.4
ant version
Apache Ant(TM) version 1.9.3 compiled on April 8 2014
mvn version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T19:39:06Z)
Maven home: /usr/local/maven-3.5.0
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-8-oracle/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.4.0-92-generic", arch: "amd64", family: "unix"
gradle version
------------------------------------------------------------
Gradle 4.0.1
------------------------------------------------------------
Build time:   2017-07-07 14:02:41 UTC
Revision:     38e5dc0f772daecca1d2681885d3d85414eb6826
Groovy:       2.4.11
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_144 (Oracle Corporation 25.144-b01)
OS:           Linux 4.4.0-92-generic amd64
lein version
WARNING: You're currently running as root; probably by accident.
Press control-C to abort or Enter to continue as root.
Set LEIN_ROOT to disable this warning.
Leiningen 2.7.1 on Java 1.8.0_144 Java HotSpot(TM) 64-Bit Server VM
Pre-installed Node.js versions
v4.8.4
v6.11.2
v6.9.4
v7.4.0
v8.4
phpenv versions
  system
  5.6
* 5.6.31 (set by /home/travis/.phpenv/version)
  7.0
  7.0.22
  hhvm
  hhvm-stable
composer --version
Composer version 1.4.2 2017-05-17 08:17:52
Pre-installed Ruby versions
ruby-2.2.7
ruby-2.3.4
ruby-2.4.1
W: http://dl.hhvm.com/ubuntu/dists/trusty/InRelease: Signature by key 36AEF64D0207E7EEE352D4875A16E7281BE7A449 uses weak digest algorithm (SHA1)
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
git.checkout
0.68s$ git clone --depth=50 https://github.com/paypal/react-engine.git paypal/react-engine
Cloning into 'paypal/react-engine'...
remote: Counting objects: 922, done.
remote: Compressing objects: 100% (406/406), done.
remote: Total 922 (delta 609), reused 787 (delta 499), pack-reused 0
Receiving objects: 100% (922/922), 173.95 KiB | 21.74 MiB/s, done.
Resolving deltas: 100% (609/609), done.
$ cd paypal/react-engine
0.25s$ git fetch origin +refs/pull/196/merge:
remote: Counting objects: 311, done.
remote: Compressing objects: 100% (144/144), done.
remote: Total 311 (delta 187), reused 286 (delta 163), pack-reused 0
Receiving objects: 100% (311/311), 49.44 KiB | 24.72 MiB/s, done.
Resolving deltas: 100% (187/187), completed with 18 local objects.
From https://github.com/paypal/react-engine
 * branch            refs/pull/196/merge -> FETCH_HEAD
$ git checkout -qf FETCH_HEAD
$ export PATH=./node_modules/.bin:$PATH
Updating nvm
nvm.install
2.41s$ nvm install 0.12
Downloading and installing node v0.12.18...
Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v0.12.18 (npm v2.15.11)
$ node --version
v0.12.18
$ npm --version
2.15.11
$ nvm --version
0.33.4
install.npm
20.65s$ npm install
npm WARN package.json<EMAIL_ADDRESS>No license field.
npm WARN deprecated<EMAIL_ADDRESS>This package is discontinued. Use<EMAIL_ADDRESS>npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">= 4"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.5.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4.0.0"} (current: {"node":"0.12.18","npm":"2.15.11"})
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4"} (current: {"node":"0.12.18","npm":"2.15.11"})
><EMAIL_ADDRESS>install /home/travis/build/paypal/react-engine/node_modules/jsdom/node_modules/contextify
> node-gyp rebuild
make: Entering directory `/home/travis/build/paypal/react-engine/node_modules/jsdom/node_modules/contextify/build'
  CXX(target) Release/obj.target/contextify/src/contextify.o
In file included from /home/travis/.node-gyp/0.12.18/include/node/v8stdint.h:13:0,
                 from /home/travis/.node-gyp/0.12.18/include/node/v8.h:18,
                 from /home/travis/.node-gyp/0.12.18/include/node/node.h:61,
                 from ../src/contextify.cc:1:
/home/travis/.node-gyp/0.12.18/include/node/node.h: In function ‘void node::FatalException(const v8::TryCatch&)’:
/home/travis/.node-gyp/0.12.18/include/node/node.h:275:61: warning: ‘void node::FatalException(v8::Isolate*, const v8::TryCatch&)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:270): Use ParseEncoding(isolate, ...) [-Wdeprecated-declarations]
   return FatalException(v8::Isolate::GetCurrent(), try_catch);
                                                             ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h:273:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use FatalException(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h: In function ‘v8::Local<v8::Value> node::Encode(const void*, size_t, node::encoding)’:
/home/travis/.node-gyp/0.12.18/include/node/node.h:287:62: warning: ‘v8::Local<v8::Value> node::Encode(v8::Isolate*, const void*, size_t, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:278): Use FatalException(isolate, ...) [-Wdeprecated-declarations]
   return Encode(v8::Isolate::GetCurrent(), buf, len, encoding);
                                                              ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h:282:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use Encode(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h: In function ‘ssize_t node::DecodeBytes(v8::Handle<v8::Value>, node::encoding)’:
/home/travis/.node-gyp/0.12.18/include/node/node.h:298:62: warning: ‘ssize_t node::DecodeBytes(v8::Isolate*, v8::Handle<v8::Value>, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:291): Use Encode(isolate, ...) [-Wdeprecated-declarations]
   return DecodeBytes(v8::Isolate::GetCurrent(), val, encoding);
                                                              ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h:294:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use DecodeBytes(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h: In function ‘ssize_t node::DecodeWrite(char*, size_t, v8::Handle<v8::Value>, node::encoding)’:
/home/travis/.node-gyp/0.12.18/include/node/node.h:312:75: warning: ‘ssize_t node::DecodeWrite(v8::Isolate*, char*, size_t, v8::Handle<v8::Value>, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:302): Use DecodeBytes(isolate, ...) [-Wdeprecated-declarations]
   return DecodeWrite(v8::Isolate::GetCurrent(), buf, buflen, val, encoding);
                                                                           ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node.h:307:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use DecodeWrite(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h: In function ‘v8::Local<v8::Object> node::Buffer::New(v8::Handle<v8::String>, node::encoding)’:
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:58:52: warning: ‘v8::Local<v8::Object> node::Buffer::New(v8::Isolate*, v8::Handle<v8::String>, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:52): Use New(isolate, ...) [-Wdeprecated-declarations]
   return New(v8::Isolate::GetCurrent(), string, enc);
                                                    ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:55:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use New(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h: In function ‘v8::Local<v8::Object> node::Buffer::New(const char*, size_t)’:
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:67:50: warning: ‘v8::Local<v8::Object> node::Buffer::New(v8::Isolate*, const char*, size_t)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:62): Use New(isolate, ...) [-Wdeprecated-declarations]
   return New(v8::Isolate::GetCurrent(), data, len);
                                                  ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:65:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use New(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h: In function ‘v8::Local<v8::Object> node::Buffer::New(char*, size_t, node::smalloc::FreeCallback, void*)’:
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:80:69: warning: ‘v8::Local<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t, node::smalloc::FreeCallback, void*)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:70): Use New(isolate, ...) [-Wdeprecated-declarations]
   return New(v8::Isolate::GetCurrent(), data, length, callback, hint);
                                                                     ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:75:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use New(isolate, ...)",
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h: In function ‘v8::Local<v8::Object> node::Buffer::Use(char*, uint32_t)’:
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:90:50: warning: ‘v8::Local<v8::Object> node::Buffer::Use(v8::Isolate*, char*, uint32_t)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:85): Use New(isolate, ...) [-Wdeprecated-declarations]
   return Use(v8::Isolate::GetCurrent(), data, len);
                                                  ^
/home/travis/.node-gyp/0.12.18/include/node/v8config.h:313:1: note: in definition of macro ‘V8_DEPRECATED’
 declarator __attribute__((deprecated(message)))
 ^
/home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:88:1: note: in expansion of macro ‘NODE_DEPRECATED’
 NODE_DEPRECATED("Use Use(isolate, ...)",
 ^
In file included from ../src/contextify.cc:3:0:
../node_modules/nan/nan.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::NewBuffer(char*, size_t, node::smalloc::FreeCallback, void*)’:
../node_modules/nan/nan.h:694:34: warning: ‘v8::Local<v8::Object> node::Buffer::New(v8::Isolate*, char*, size_t, node::smalloc::FreeCallback, void*)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:70): Use New(isolate, ...) [-Wdeprecated-declarations]
                              hint);
                                  ^
../node_modules/nan/nan.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::CopyBuffer(const char*, uint32_t)’:
../node_modules/nan/nan.h:709:67: warning: ‘v8::Local<v8::Object> node::Buffer::New(v8::Isolate*, const char*, size_t)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:62): Use New(isolate, ...) [-Wdeprecated-declarations]
     return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../node_modules/nan/nan.h: In function ‘Nan::MaybeLocal<v8::Object> Nan::NewBuffer(char*, uint32_t)’:
../node_modules/nan/nan.h:735:67: warning: ‘v8::Local<v8::Object> node::Buffer::Use(v8::Isolate*, char*, uint32_t)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node_buffer.h:85): Use New(isolate, ...) [-Wdeprecated-declarations]
     return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
                                                                   ^
../node_modules/nan/nan.h: In function ‘void Nan::FatalException(const Nan::TryCatch&)’:
../node_modules/nan/nan.h:870:73: warning: ‘void node::FatalException(v8::Isolate*, const v8::TryCatch&)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:270): Use ParseEncoding(isolate, ...) [-Wdeprecated-declarations]
     node::FatalException(v8::Isolate::GetCurrent(), try_catch.try_catch_);
                                                                         ^
../node_modules/nan/nan.h: In function ‘v8::Local<v8::Value> Nan::Encode(const void*, size_t, Nan::Encoding)’:
../node_modules/nan/nan.h:1788:44: warning: ‘v8::Local<v8::Value> node::Encode(v8::Isolate*, const void*, size_t, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:278): Use FatalException(isolate, ...) [-Wdeprecated-declarations]
     , static_cast<node::encoding>(encoding));
                                            ^
../node_modules/nan/nan.h: In function ‘ssize_t Nan::DecodeBytes(v8::Local<v8::Value>, Nan::Encoding)’:
../node_modules/nan/nan.h:1804:44: warning: ‘ssize_t node::DecodeBytes(v8::Isolate*, v8::Handle<v8::Value>, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:291): Use Encode(isolate, ...) [-Wdeprecated-declarations]
     , static_cast<node::encoding>(encoding));
                                            ^
../node_modules/nan/nan.h: In function ‘ssize_t Nan::DecodeWrite(char*, size_t, v8::Local<v8::Value>, Nan::Encoding)’:
../node_modules/nan/nan.h:1826:44: warning: ‘ssize_t node::DecodeWrite(v8::Isolate*, char*, size_t, v8::Handle<v8::Value>, node::encoding)’ is deprecated (declared at /home/travis/.node-gyp/0.12.18/include/node/node.h:302): Use DecodeBytes(isolate, ...) [-Wdeprecated-declarations]
     , static_cast<node::encoding>(encoding));
                                            ^
  SOLINK_MODULE(target) Release/obj.target/contextify.node
  COPY Release/contextify.node
make: Leaving directory `/home/travis/build/paypal/react-engine/node_modules/jsdom/node_modules/contextify/build'
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=4"} (current: {"node":"0.12.18","npm":"2.15.11"})
<EMAIL_ADDRESS>node_modules/parent-require
<EMAIL_ADDRESS>node_modules/rewire
<EMAIL_ADDRESS>node_modules/debug
└──<EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/glob
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/faucet
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/react-router
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/express
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/tape
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/esprima-fb
<EMAIL_ADDRESS>node_modules/sinon
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/cheerio
├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/jsdom
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/jscs
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/lodash-node
<EMAIL_ADDRESS>node_modules/jshint
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS>node_modules/react
├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>3.01s$ npm test
><EMAIL_ADDRESS>test /home/travis/build/paypal/react-engine
> npm run jscs && npm run lint && npm run tape
><EMAIL_ADDRESS>jscs /home/travis/build/paypal/react-engine
> jscs --verbose .
No code style errors found.
><EMAIL_ADDRESS>lint /home/travis/build/paypal/react-engine
> jshint --verbose --show-non-errors --config=.jshintrc **/*.js
lib/server.js: line 133, col 9, Misleading line break before '?'; readers may interpret this as an expression boundary. (W014)
lib/server.js: line 54, col 25, This function's cyclomatic complexity is too high. (7) (W074)
2 errors
npm ERR! Linux 4.11.6-041106-generic
npm ERR! argv "/home/travis/.nvm/versions/node/v0.12.18/bin/node" "/home/travis/.nvm/versions/node/v0.12.18/bin/npm" "run" "lint"
npm ERR! node v0.12.18
npm ERR! npm  v2.15.11
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>lint: `jshint --verbose --show-non-errors --config=.jshintrc **/*.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>lint script 'jshint --verbose --show-non-errors --config=.jshintrc **/*.js'.
npm ERR! This is most likely a problem with the react-engine package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     jshint --verbose --show-non-errors --config=.jshintrc **/*.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-engine
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls react-engine
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /home/travis/build/paypal/react-engine/npm-debug.log
npm ERR! Test failed.  See above for more details.
The command "npm test" exited with 1.
Done. Your build exited with 1.```

@samsel Not sure why cyclomatic complexity issue is coming here. Might be an existing issue.
lib/server.js: line 54, col 25, This function's cyclomatic complexity is too high. (7) (W074)
What should we do? I can see three options.

Refactor whole function to reduce the complexity.
Increase the complexity in the lint config. (Same is working fine in v2/v4)
We can ignore it for now and merge it. (as v1.x is deprecated anyway).

Let me know @samsel .

Also, i can see v3.x is also there on npm registry.


License

Hi,
I'd like to package this repository in GNU Guix. However, I'm missing the license for this project. Could you please specify? I've checked the code but unfortunately haven't find any.

You're right, forgot to add a license.
Now licensed under APACHE v2.


Add CFG-guided generation to the vLLM integration

Second attempt to add CFG support to vllm.
Context:
Currently vllm supports Regex and JsonSchema for vllm serving. This PR tries to add CFG support to vllm serving.
vllm has vllm.LLM class to handle offline inference and vllm._AsyncLLMEngine to handle async multi node serving. vllm._AsyncLLMEngine is an instance of vllm.LLMEngine and vllm.LLM has an underlying engine property which is an instance of vllm.LLMEngine.  This is important because outlines need to get the tokenizer from the vllm and tailor it to its needs and vllm.LLM and vllm.LLMEngine has two distinct way of getting the tokenizer.
Outlines code has some special needs for the tokenizer API that has some slight differences with the vllm's tokenizer. Because of that it has a adap_tokenizer function, to tailor the tokenizer to its needs.
Current bug (Thanks to #536 #535):

Current outlines code (in main) has LogitProcessors to bias the logis of vllm and these classes expect  vllm._AsyncLLMEngine (as demonstrated in outlines/serve/serve.py ), although it mentioned vllm.LLM as argument type in documentation. So the documentation is currently wrong. Because of this expectation, code in examples/vllm_integration.py fails.

Proposed Solution:
Since vllm mentioned that the vllm.LLMEngine is the main class for vllm Engine, Outlines to expect vllm.LLMEngine in it's LogitProcessors and get the tokenizer from that.
Other solution can be supporting both and branching by a hasattr .
Currently vllm doesnt support vllm.LLM class as input in to the logit processor and thats the error cause in the example file.

would this be compatible with distributed inference using Ray? I'm trying to run mistral 7B across 4 GPU's using vLLM's TensorParallel=4, I see the following issue:
TypeError: RegexLogitsProcessor.__call__() missing 1 required positional argument: 'scores'
(RayWorkerVllm pid=24725) Could not apply nest_asyncio: Can't patch loop of type <class 'uvloop.Loop'> [repeated 3x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)

would this be compatible with distributed inference using Ray? I'm trying to run mistral 7B across 4 GPU's using vLLM's TensorParallel=4, I see the following issue:
TypeError: RegexLogitsProcessor.__call__() missing 1 required positional argument: 'scores'
(RayWorkerVllm pid=24725) Could not apply nest_asyncio: Can't patch loop of type <class 'uvloop.Loop'> [repeated 3x across cluster] (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to disable log deduplication, or see https://docs.ray.io/en/master/ray-observability/ray-logging.html#log-deduplication for more options.)

This is addressed by #539

This PR addresses generation of multiple sequences concurrently, which can take place on a single GPU without tensor parallelism.
However, I'll get around to it since I need guided generation on multiple GPUs as well :) Tensor parallel / Ray is discussed https://github.com/outlines-dev/outlines/issues/524

Thank you for opening a PR! A couple question:

Did you have to add adapt_tokenizer because vLLM expects a list when decoding? Does batching work with this change?
Could you please rebase on main instead of merging? This helps keep a linear history.

Hi,
Because the implemented model.decode of outlines, outlines uses batch_decode of the tokenizer class and it returns a list, and in https://github.com/outlines-dev/outlines/blob/65ed0f7e9f900701ba62479982ee29bb47cc2738/outlines/fsm/fsm.py#L345 the FSM generation uses the index zero of the returned list. but vllm's model.decode uses decode of the tokenizer class. without decode returning a list this causes an error.
the serve.py file I think doesn't support batching. The batching checked in example/vllm_integration.py file and it works.

Thanks for pointing out the error. The reason behind that error was that the tokenizer changes the first time you make the request and the second the changes added on to the already changed tokenizer and this make it incompatible with the outlines model behavior and API. I added a flag on to the vllm decoder to check whether the vllm decoder is adapted for outlines model or not and if that's the case, do not continue the adaption of the tokenizer. This change might not seem a good choice but I think in this way we can keep the adaption code in the vllm.py file and don't leak it to the serve file.

Thanks for pointing out the error. The reason behind that error was that the tokenizer changes the first time you make the request and the second the changes added on to the already changed tokenizer and this make it incompatible with the outlines model behavior and API. I added a flag on to the vllm decoder to check whether the vllm decoder is adapted for outlines model or not and if that's the case, do not continue the adaption of the tokenizer. This change might not seem a good choice but I think in this way we can keep the adaption code in the vllm.py file and don't leak it to the serve file. Also prevents to run adaption code on each request.

Thanks for the explanation.
Could you write a test reproducing this problem?
The test should be guarded by @pytest.mark.skipif, skipping if not torch.cuda.is_available()

done

Will review some time today or tomorrow. Preliminary - it seems you designed your test case in a way which doesn't actually require GPU, so you can remove the skipif.

I agree it should be executed in all cases.

I cannot run the mistral on my machine and with other models I see the json ends without dot (.) sometimes. But a problem that I see with the grammar that you mentioned in your comment in the linked issue is that the connection is not closed after the json is finished, that is I can see the result and json in correct form but the curl connection is not closed.

I cannot run the mistral on my machine and with other models I see the json ends without dot (.) sometimes. But a problem that I see with the grammar that you mentioned in your comment in the linked issue is that the connection is not closed after the json is finished, that is I can see the result and json in correct form but the curl connection is not closed. I don't think this problem is related to the changes either.

If other models end before the dot, it must be the models fault that it ends when there's a period and not Outlines, nor Outlines integration with vLLM.

Two test errors are in Lark tests/test_grammars.py
E       AttributeError: 'ParserConf' object has no attribute 'deterministic'

lark==1.1.9 was released 6 weeks ago and works on my machine. Investigating...

Hi @mory91, thanks for implementing this! Could you let me know what work remains and if there's any way I could help?

Hi,
I don't think anything is left.
On Fri, Feb 9, 2024 at 8:45 AM Andrew Lapp @.***> wrote:

Hi @mory91 https://github.com/mory91, thanks for implementing this!
Could you let me know what work remains and if there's any way I could help?
—
Reply to this email directly, view it on GitHub
https://github.com/outlines-dev/outlines/pull/541#issuecomment-1936158042,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADI3JQKHLC5S45OUR2W6WB3YSY777AVCNFSM6AAAAABB32MZ4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZWGE2TQMBUGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I added CFG in this PR https://github.com/vllm-project/vllm/pull/3211

We can close this PR as soon as the PR on vLLM is merged. We will also need to remove the vLLM-related code in the repo.

Thank you for contributing! vLLM is currently implementing this on their end, so I will close this PR for now.


Bacteria, Chromista and Plantae trinomials are getting assigned an infrasp. marker

Bacteria, Chromista and Plantae trinomials are being assigned the infraspecies marker, "infrasp.," which shouldn't be used as a marker because infraspecies is a generic term. This might be a code-specific bug because it doesn't affect zoological trinomials.

diff_key
hierarchy
p8
p7
p6
p5
p4
p3
p2
p1
name
hash
url

2dcfb8c6aaccaeafda8377dde0ed8d57
Bacteria_Cyanobacteria_Cyanophyceae_Nostocales_Oscillatoriaceae_Spirulina_Spirulina subsalsa_Spirulina subsalsa infrasp. subsalsa

Bacteria
Cyanobacteria
Cyanophyceae
Nostocales
Oscillatoriaceae
Spirulina
Spirulina subsalsa
Spirulina subsalsa infrasp. subsalsa
a0a65ef2280ace909199aad702e82619
http://workbench.catalogueoflife.org/col_plus/details/species/id/a0a65ef2280ace909199aad702e82619

1af233132eb786bff78398b3197a9144
Bacteria_Cyanobacteria_Cyanophyceae_Nostocales_Oscillatoriaceae_Spirulina_Spirulina subsalsa_Spirulina subsalsa subsalsa

Bacteria
Cyanobacteria
Cyanophyceae
Nostocales
Oscillatoriaceae
Spirulina
Spirulina subsalsa
Spirulina subsalsa subsalsa
2a0e960881689be471ff59ab3bc173fd
http://www.catalogueoflife.org/annual-checklist/2019/details/species/id/2a0e960881689be471ff59ab3bc173fd

Bug found in: https://github.com/Sp2000/colplus-repo/issues/60

where does this show up? I cannot find the marker in the clearinghouse nor draft catalogue, it looks fine to me: https://www.col.plus/dataset/3/taxon/586c3737-2e91-40da-aaf1-aa3a0a945a05

It's in scientific_names.csv of ac-export.zip:
23688,a754cd45-23e7-4ebf-9721-e9201b9fd243,http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=1057, Spirulina,\N,subsalsa,ff3c9027-d693-4d25-b867-afec408f6fa6,subsalsa,infrasp.,,a754cd45-23e7-4ebf-9721-e9201b9fd243,\N,2015-03-02,1,115,\N,1851,\N,42ff70c5-bd1f-492d-b9d1-a54997ea7103,1,\N,\N,0,0,0
23689,586c3737-2e91-40da-aaf1-aa3a0a945a05,http://www.itis.gov/servlet/SingleRpt/SingleRpt?search_topic=TSN&search_value=1056, Spirulina,\N,subsalsa,ff3c9027-d693-4d25-b867-afec408f6fa6,oceanica,infrasp.,,586c3737-2e91-40da-aaf1-aa3a0a945a05,\N,2015-03-02,1,115,\N,1851,\N,42ff70c5-bd1f-492d-b9d1-a54997ea7103,1,\N,\N,0,0,0
You can also see it in the AC_Interface search, but not on the taxa pages:
http://workbench.catalogueoflife.org/col_plus/search/all/key/Spirulina+subsalsa+subsalsa/fossil/1/match/1
(AC_Interface removes the infraspecies marker from taxon pages for zoological infraspecies, and it's probably a AC_Interface bug that it's showing infraspecies markers for zoological species in search.)

was it exported from the current prod draft catalogue? The current draft does not seem to have the same problem

Yeah, I pulled those two lines above from the latest ac-export.zip with:
grep "Spirulina" scientific_names.csv | grep subsalsa | grep infrasp\.

mind if I reexport the current prod draft to see if it still is the case?

Go ahead.

Ah, now I got it. The rank marker is exported in the ranks field. I was thinking it is part of the full name which is isn't. The CoL interface assembles the rank into the name.
I will exclude all ranks of that type in the export.


[BCHDCC-42]: Label in Name & [BCHDCC-43]: Labels and Instructions

Description

WCAG 2.5.3: As a user that requires a screen reader, I want to rely on visible labels as a means to interact with the components, so I can navigate and select features throughout a web page.
WCAG 3.3.2: As a user that requires a screen reader, I want to know the labels of the form fields and which form fields are required, so I can complete a form without being stuck.
Clearer labels and instructions were added to User Profile and Forgot Your Password pages.
Motivation and Context

BCHDCC-42 - Accessibility Criterion 2.5.3: Label in Name
BCHDCC-43 - Accessibility Criterion 3.3.2: Labels or Instructions

Screenshots

Libraries Added
Migrations to Run: Yes / No
Tests to Run
Internal Checklist

[x] My code follows the code style of this project (https://rubystyle.guide/).
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

IT looks great! just a quick comment:
Current password instructions and field appears twice in the form

@anna-dorigo - I fixed the double "current password", it wasn't my original change, I think that change was made when resolving a merge conflict in github. Should be good to go now! 👍


[Request] Date range

Is there a way to download reddit post that 5 months old only or something like that, I just need the new one
or Last 100 post?

what does the download start with, almozayal, the new or the old ones?

what does the download start with, almozayal, the new or the old ones?

the new ones, is there a way to limit the download?


Drop the external git repo

It doesn't have dependencies leading to failures at installation time.
Signed-off-by: Mrunal Patel<EMAIL_ADDRESS>

LGTM, anything holding it in WIP?

@giuseppe I think that falling back to older git will lead to failures somewhere.

/test e2e_rhel

Changes LGTM, will cross the fingers for the tests.

@giuseppe It went past all setup and is at e2e. So this is good to go if tests pass :)

/test e2e_fedora

/lgtm

/test e2e_rhel


Update rm2fb-client package to enable screensharing

I noticed that the version of rm2fb-client that toltec is using is 2 years old. A recent patch to it enables you to have screensharing while still using rm2fb:
https://github.com/ddvk/remarkable2-framebuffer/issues/117
It would probably be worth updating the package to a newer version.

Hmm...okay, looking into this more, it looks like it has been updated 1 month ago. Never mind.


No valid rules have been specified

Bug Report

TSLint version: 5.9.1
TypeScript version: 2.7.2
Running TSLint via: VScode on Mac, but fails on CLI too

With tslint.json configuration:
{
    "defaultSeverity": "none",
    "extends": [
        "tslint:recommended"
    ],
    "jsRules": {},
    "rules": {
        "no-internal-module": false,
        "typedef-whitespace": false,
        "variable-name": [
            true,
            "check-format",
            "allow-leading-underscore"
        ],
        "no-console": false,
        "no-reference": false,
        "no-namespace": false,
        "max-line-length": [true, 140],
        "no-bitwise": false,
        "align": true,
        "arrow-return-shorthand": true,
        "no-magic-numbers": true
    },
    "rulesDirectory": []
}

Actual behavior
Last week my tslint was working fine with the above configuration. Today I updated my VSCode, and TSLint started complaining that no compatible version of Typescript was installed. To fix this I did npm install -g typescript which fixed the TSLint version error.
The TSLint extension in VSCode gives the warning No valid rules have been specified, and doesn't lint anything.
I tried running tslint --project build from the CLI, but I get the same error.
I thought maybe tslint was looking for a global configuration file, but if I add a syntax error to my local tslint.json, I'll get a different error Unexpected token f, so it seems it is looking at the local config but then failing somehow
Expected behavior
TSLint should run over the project as it did before

I have the same issue with coming from 5.8.0 to 5.9.1.
Running tslint --config tslint.json --project tsconfig.json spits the same No valid rules have been specified error.

I've found a possible solution:
If you're using setting "allowJs": true in tsconfig.json, it will try to find rules and jsRules from tslint.json.
If your jsRules is empty, it will complain. IMO the messages should indicate which rules it is actually parsing.
Adding a rule inside jsRules made the message go away.
"jsRules": {
    "no-empty": true
}

I just tried adding:
"allowJs": true,
"jsRules": {
    "no-empty": true
}

To my tslint.json, but unfortunately the message stays, and it doesn't seem to lint anything still

What do you get on your output? If there’s no errors then it should be working fine.

I get the same output/warning, changing it didn't do anything 😢

@nattyxd did you add jsRules to your tsconfig or tslint.json? allowJs is in tsconfig; with allowJs your tslint.json is expecting some jsRules (hence the bug). A workaround would be to add "jsRules": { "no-empty": true } to your tslint.json so that it has a rule and doesn't complain. This shouldn't have any impact I think. It's just a small annoyance.

@ajcrites Absolutely on point. I think this issue should be closed.

Closing this issue as it seems to be resolved.

Several months ago I had this issue, then it was solved by the solution explained in this thread, and it was all okey for a while, but recently I started having this issue again, though I do have "no-empty": true. Banging my head and cannot figure out what could be the problem.

@gkirill Did you figure it out? I have the same problem. The advice above doesn't help.

{
"extends"<EMAIL_ADDRESS>"rules": {
"class-name": false,
"export-name": false,
"forin": false,
"label-position": false,
"member-access": true,
"no-arg": false,
"no-console": false,
"no-construct": false,
"no-duplicate-variable": true,
"no-eval": false,
"no-function-expression": true,
"no-internal-module": true,
"no-shadowed-variable": true,
"no-switch-case-fall-through": true,
"no-unnecessary-semicolons": true,
"no-unused-expression": true,
"no-use-before-declare": true,
"no-with-statement": true,
"semicolon": true,
"trailing-comma": false,
"typedef": false,
"typedef-whitespace": false,
"use-named-parameter": true,
"variable-name": false,
"whitespace": false
}
}

If you don't want TSLint linting JS files (and you have tslint >= 5.8), simply add the following to your tslint.json:
"linterOptions": {
    "exclude": [
        "**/*.js"
    ]
}

Add tslint --config tslint.js works for me.

you need to specify the config file, like tslint -c .eslintrc.yml -p tsconfig.json, and there is nothing that's required from above like jsRules or all of those..

🤖 Beep boop! 👉  TSLint is deprecated 👈  and you should switch to typescript-eslint! 🤖
🔒 This issue is being locked to prevent further unnecessary discussions. Thank you! 👋


feat(addon-editor): select link before edit for improve ux

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows Conventional Commits
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Refactoring
[ ] Code style update
[ ] Build or CI related changes
[ ] Documentation content changes

What is the new behavior?
Part of https://github.com/Tinkoff/taiga-ui/issues/1302

Does this PR introduce a breaking change?

[ ] Yes
[x] No

@nsbarsukov @vladimirpotekhin  hello, please review me))


Feature slate v0.31.3

Related issues

Upgrade slate to v0.31.3 #50

@gabrielrtakeda Good work on this. Any thoughts on my review comments?

@gabrielrtakeda My project is needing to update to the latest slate soon for IME support. Any chance we can wrap this up now? It's been out here 2 weeks. I can make adjustments on your branch if you'd like some assistance.

Hi @abobwhite, we're making a big refactoring on our project and we will make a new release soon.. If you need to make some changes, fill free to use my branch and create a new PR to it...

Thanks for the update, @gabrielrtakeda . Do you have any response to my review comments? I think the latter two need to be addressed.

Hi @gabrielrtakeda Our project is nearing a major deadline that I need this to upgrade slate to get a fix for IME. Do you have any timetable for when you might be finishing your testing with the refactoring in your project? Specifically, an ETA to get this merged?


[bazel] fix bazel airgapped prep script

PR #14924 should have also added another dep to the airgapped script.
Signed-off-by: Timothy Trippel<EMAIL_ADDRESS>

merging early, same as #14924


Add configuration to disable forking

My attempt to work on https://github.com/fthomas/scala-steward/issues/197
Submitting for initial feedback.
Working on unit tests.

Hi @fthomas ,
When you have some time, can you look into this PR and let me know your thoughts?
Thanks.

I tried this out, it worked for me!
Maybe add some information and the new config parameter to the README.md so it is clear it is an option.

@all-contributors please add @ArulselvanMadhavan for code, test


split: error when num. of chunks is greater than num. of possible filenames

Addresses https://github.com/uutils/coreutils/issues/3106.
Since it was tangentially related, I added support for hexadecimal suffixes -x/--hex-suffixes (and tests) in two additional commits as a part of this PR. Let me know if I should save it for another issue or scrap it altogether by resetting to the first commit - I'm sure there are plenty of tweaks I should make before it gets merged, and I'm always more than willing to answer any questions.

Nice! There's already a PR open for hex suffixes I believe (#2981). Could you check what the differences are?

Wow those PRs are very similar 😄 Like, most of the time even using the same variable names and (almost) the same tests. Given the similarities we have to dive deep into some small details. Here's what I can find:

Names for the enum variants. I find Default not descriptive enough, so I would at least change that.

// #3146 (this PR)
pub enum SuffixType {
    Default,
    Numeric,
    Hexadecimal,
}
// #2981
pub enum SuffixType {
    Alphabetic,
    NumericDecimal,
    NumericHexadecimal,
}
// I would propose:
pub enum SuffixType {
    Alphabetic,
    Decimal,
    Hexadecimal,
}

#2981 has a method for getting the radix from the SuffixType which is nice.
#2981 updates the documentation of the some functions to reflect the addition of hex.
This PR passes the SuffixType by reference, instead of by value (due to the new clippy lints?)
This PR adds the error for when the suffix is too small of course.
The conversion to hex. I'm not sure what the best option here is

// #3146 (this PR)
const HEX_DIGITS: [char; 16] = [
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f',
];
HEX_DIGITS[*d as usize]
// #2981
(if *d < 10 { b'0' + d } else { b'a' + (d - 10) }) as char
// A third option:
const HEX_DIGITS: &[u8; 16] = b"0123456789abcdef";
HEX_DIGITS[*d as usize] as char
// A fourth option:
std::char::from_digit(d, 16).unwrap()

Help text. I have no strong preference here.

// #3146 (this PR)
use hex suffixes instead of alphabetic
// #2981
use hex suffixes starting at 0, not alphabetic

Finally, both convert to the radix to then match on the radix, which is a bit inconvenient. Ideally, FixedWidthNumber and DynamicWidthNumber are both passed the SuffixType so that they can directly match on that, but that's not a big issue.
My suggestion would be to take the best of both PRs based on what I have outlined above and put it into this PR (with the Co-authored by field of the commit set to @jfinkels).

Doh! I'll take this as a lesson to check if there's an existing PR - I definitely would've cherry-picked @jfinkels commits. I'll make improvements based off that PR and the suggestions of @tertsdiepraam and you know when it should be looked at again.
For self reference (and unless this isn't the way to coauthor you can correct me), I'm leaving this link so that I remember to add jfinkels as a coauthor to the -x support commits:
https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors

You could just rebase your last commit on top of my branch and advocate for the pull request #2981 to get merged.


Add themis test and covimerage

Codecov Report

Merging #3 into master will increase coverage by 0.07%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master       #3      +/-   ##
==========================================
+ Coverage   58.29%   58.36%   +0.07%
==========================================
  Files          28       30       +2
  Lines         458      490      +32
  Branches       35       34       -1
==========================================
+ Hits          267      286      +19
- Misses        189      203      +14
+ Partials        2        1       -1

Impacted Files
Coverage Δ

rplugin/python3/curstr/curstr.py
65.51% <ø> (+4.22%)
:arrow_up:

autoload/curstr/custom.vim
48.14% <0%> (ø)

autoload/curstr.vim
85.71% <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 6cc6e88...3597822. Read the comment docs.


[Android] Hang on Splash Screen following process restoration when run with --start-paused

Some Context
This was originally opened with the Dart-Code team here as I noticed the behavior only when running from VSCode. @DanTup was kind enough to look into it and prove that this is actually reproducible outside of VSCode using --start-paused. See @DanTup's comments on the linked ticket for more.
Steps to reproduce
⚠ NOTE: I created this repo for reproducing (basically a simple flutter create -e, but allows all commands below to succeed automatically).
Steps to reproduce the behavior (WITH VSCode):

flutter create -e restoration_bug
cd restoration_bug
Open main.dart and make sure an Android device is selected. We've found this reproduces 100% on Android 14 devices, but have not tested much outside that. Will test a variety of OS versions and report back via comments.
On your device, enable developer options and set the Background process limit to No background processes (this will just help to have the system kill the process sooner than it normally would)
Run the app via the Run button on the main function
Background the app and run other apps until Android kills the Flutter process. You can be sure it is killed by running adb shell pidof com.example.restoration_bug and verifying there is NO output. If output exists, the app is still running under that process ID.
Once output of above command is clear, open the app back up via Recents or from Home Screen Launcher.
Note that the app never progresses beyond the Splash Screen which shows the Flutter logo.

See @DanTup 's comment for steps to reproduce WITHOUT VSCode
Expected results
The app should land on the initial route which shows a Hello world message.
Actual results
The app hangs on the splash screen. See video in section below.
Code sample
See the repository linked in the Steps to reproduce section.
Screenshots or Video
This video shows how restoration behaves when run from VSCode and then when run after quitting the app:
https://github.com/Dart-Code/Dart-Code/assets/8343465/843abf0d-bf48-4979-8f7a-7ee7ced4ecd6
Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
[✓] Flutter (Channel stable, 3.16.4, on macOS 14.3 23D56 darwin-arm64, locale en-US)
    • Flutter version 3.16.4 on channel stable at /Users/brandontrautmann/fvm/versions/3.16.4
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2e9cb0aa71 (6 weeks ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/brandontrautmann/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_SDK_ROOT = /Users/brandontrautmann/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] IntelliJ IDEA Community Edition (version 2023.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.85.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • moto x4 (mobile)          • ZY224LJPKC                • android-arm64  • Android 9 (API 28)
    • Brandon’s iPhone (mobile) • 00008110-000674483E20201E • ios            • iOS 17.3 21D50
    • macOS (desktop)           • macos                     • darwin-arm64   • macOS 14.3 23D56 darwin-arm64
    • Chrome (web)              • chrome                    • web-javascript • Google Chrome 120.0.6099.234

[✓] Network resources
    • All expected network resources are available.

• No issues found!

CC @DanTup in the event you don't get pinged for the mention in the Issue Description.

Reproducible using the steps provided above.
I tested on a Pixel 7 (running android 14) and a Pixel 7 emulator running android 12. It reproduced in both cases.

flutter doctor -v
[✓] Flutter (Channel master, 3.19.0-9.0.pre.144, on Microsoft Windows [Version 10.0.22631.3007], locale en-GH)
    • Flutter version 3.19.0-9.0.pre.144 on channel master at C:\Users\Deana\fvm\versions\master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 295a9a2031 (2 hours ago), 2024-01-24 23:51:25 -0800
    • Engine revision 5fa2e29202
    • Dart version 3.4.0 (build 3.4.0-70.0.dev)
    • DevTools version 2.31.0

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\Deana\AppData\Local\Android\sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34322.80
    • Windows 10 SDK version 10.0.22621.0

[✓] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)

[✓] VS Code (version 1.85.2)
    • VS Code at C:\Users\Deana\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 31) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22631.3007]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 120.0.6099.227
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 120.0.2210.144

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel stable, 3.16.5, on Microsoft Windows [Version 10.0.22631.3007], locale en-GH)
    • Flutter version 3.16.5 on channel stable at C:\Users\Deana\fvm\versions\stable
    ! Warning: `flutter` on your path resolves to C:\Users\Deana\fvm\versions\master\bin\flutter, which is not inside your current Flutter SDK checkout at C:\Users\Deana\fvm\versions\stable. Consider adding C:\Users\Deana\fvm\versions\stable\bin to the front of your path.
    ! Warning: `dart` on your path resolves to C:\Users\Deana\fvm\versions\master\bin\dart, which is not inside your current Flutter SDK checkout at C:\Users\Deana\fvm\versions\stable. Consider adding C:\Users\Deana\fvm\versions\stable\bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 78666c8dc5 (5 weeks ago), 2023-12-19 16:14:14 -0800
    • Engine revision 3f3e560236
    • Dart version 3.2.3
    • DevTools version 2.28.4
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Windows Version (Installed version of Windows is version 10 or higher)

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\Deana\AppData\Local\Android\sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: C:\Program Files\Android\Android Studio\jbr\bin\java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[✓] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.2)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34322.80
    • Windows 10 SDK version 10.0.22621.0

[✓] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)

[✓] VS Code (version 1.85.2)
    • VS Code at C:\Users\Deana\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[✓] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 31) (emulator)
    • Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.22631.3007]
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 120.0.6099.227
    • Edge (web)                   • edge          • web-javascript • Microsoft Edge 120.0.2210.144

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.


Training Error

Hi, thank you for this tool. I'm new with Tesseract and just wanted to try recognizing some digits, which naive me thought that it wouldn't be too much trouble, I was wrong :)
First item I should mention is that 'Ground Truth Preview' doesn't like the default install path of Tesseract on Windows. There's a space in "Program Files\Tesseract" and Tesstrain-win-gui isn't using " " when launching the associated exe. So I installed it in a path without spaces in the name.
So, my user case is that I have a bunch of images, with some GPS coordinates printed on them. I pre-processed them with ImageMagicks to only contain the relevant information, an try extracting the digits. Unfortunately, my results might only be 75% accurate, leading me to trying to train the system for this.
I am able to train some data without any start models using your UI. My error rate is higher than using the 'Eng' model, so I thought I would try starting from the 'eng' model. Unfortunatly, it generates some error that I would like some help with. Would it be possible to point me in the right direction ?
Thank you.
Here is the error I get:

I included my training data set (50 images) and the output of each step until the error, when 'debug' option is selected.
manholetrainset.zip
OutputSteps.zip

Having the same issue, scoured the internet and came out empty-handed.
Very frustrating.

I seem to also have the same issue with the ocrd-testset, so not an issue with my data after all. :/ Maybe the default installed eng.traineddata is not good for this? At some point, I tried with other traineddata, but was still getting an error.

Hi, thanks @sammyfreg  for great issue report. I've just fixed bugs related to the "Program Files" installation.
Now for the other part, the real cause is in the file "OutputStep6Error.png" you have attached.

What it means is you have used "fast" model which doesn't have data required to be used as starting model.
If you go Tesseract User Manual, specifically this part, you can see there are two versions: "best" and "fast". You just need to download the "best" version and everything should be working good.
I'll try to detect this situation in future and make it clear in GUI that this is wrong version of trained data, when I get some free time for this.

Thank you, that was it!
I thought I had tried the 'best' model at some point, with still some errors of some kind, but now the training seems to be happening properly.
For other people reference, you can find the 'best' trained set here :

Just a quick update.
For a long time, I thought my training results were still poor, since when using Preview, it would report a lot of errors, with the Find Next Wrong button. Then, I guessed that maybe it was using the 'Start Model' for the test, and not the newly trained model. changing the 'Start Model' the newly trained/copied one, I suddenly can confirm that my results are a lot better! So, maybe this should try to pick the last trained model, or show another dropdown to select the trained data used for the Preview?
I managed to get some decent results after training, thanks for this tool that made it easier than trying to figure out all the details.

I have fixed this one and some other issues in the newest version. Now it uses last trained model or if it doesn't exist will ask to use Start Model.
Also fixed problems with UTF-8 characters on Preview and other issues.

I assume the issue as fixed and close. Let me know if needs to be reopened.


Setting the width causes a validation quirk

I have two div's inside a form like this:
<form ...>

    ... Form elements ...

    ... Form elements ...

</form>

And here is the css for the column class:
.column {float: left; width: 47.5%; margin-right: 2.5%;}

The first column contains 3 form elements. The first two fields are required and the third is optional but has email address validation. If I load the page, place the marker inside the last field and enter an invalid email address and then click on the submit button, the last field is validated (email) but the first two (required) isn't triggered. If I click the submit button again, validation is triggered as expected (for all 3 fields).
Here's the strange part though. If I remove the width declaration from the column class and repeat the process, all fields are validated as expected. Why do setting the width effect validation? Is this a know issue? What can I do to fix it?
In short, this works .column {float: left; margin-right: 2.5%;} while this doesn't .column {float: left; width: 47.5%; margin-right: 2.5%;} .
I've tested this with the following setup:
Firefox 3.6.13
jQuery 1.5.1
jQuery validation 1.8.0
Best regards / Kristoffer

not really, it's my first time working with jQuery:)
I think though I'm starting to understand where the problem is. I wrote my own javascript validation, which works similar to the plugin, and encountered just the same issues! (though they exist no matter what form width I have, but I guess it's not surprising for a beginner's script:)
First of all, for me the two plugin problems occur only if I submit the form by clicking its submit button, whereas if I submit it with Enter key everything is fine. Is it true for you?
So far it seems to me that what happens is the onsubmit event handler for the form is not executed, so the last changed field does get checked but the rest of the form does not. It happens when:

before submitting the form I enter something invalid into a field that has a validation routine that is more complicated than "required";
to submit the form I click its submit button, creating an additional onclick event.

I'm not sure yet what to make out of it and can't find clear information about how multiple simultaneous events happening on different elements (on form and on the field) are processed and what potential problems there are. Do you know anything about it?
By the way, are you on Windows? XP?

Yes. For me it only occurs when I press the submit button. Hitting Enter will validate the form as expected.
Regarding your 2 bullets for when it occurs, as far as I can tell this is the same for me.
I'm running Windows 7. You?

So I've finally found someone who was able to crack this problem:)
The thing is: if there is not enough space for error messages to fit next to form fields (or if we place them in paragraphs or divs instead of labels), as soon as an error message appears it changes the height of the form and hence the position of the Submit button. So when we enter something invalid into a field just before clicking Submit, the field’s onfocusout handler is executed and the error message is shown. The message modifies the form’s height, “shifting” the Submit button down, so by the time we click “Submit” the button is not there any more (it's already lower)!
So it doesn’t really have anything to do with the plugin itself, and it looks like the only solution is to avoid showing error messages in any way that would change the position of the submit button.

You seem to be spot on with the problem! Knowing what I know now it is clear that what you suggest is the issue. So I'm guessing this really isn't an issue with jQuery Validation and we should close this issue!? But my vote is to keep the issue in the list as it could help others that experience this!
Thanks for helping me identify the problem!

You're most welcome:) I think we should close it - it will be still visible in the Closed Issues.


UK-formatted dates won't parse

Would be good to internationalize this to accept non-US date formats. A UK formatted date, like 22/10/1986, does not parse. DateJS (a similar library for Javascript) can handle dates like that, so there might be something you can re-use.

Hi joestelmach,
is there any progress in this issue? I also vote for this.

I am also voting for this issue. But if @joestelmach has no time why not discuss the architectural changes and try to do it by our own? I am fairly new to the project but I am very interested in a localized version, so once we have a plan I could participate coding on it.

Hi @joestelmach is there any update regarding this feature?

Unfortunately I just don't have the bandwidth for open source work at the moment.


S101 (assert detected) conflicts with mypy type narrowing

from typing import Any

def fn(x: Any):
    assert isinstance(x, int)

ruff 0.0.280 gives
$ ruff --select S101 t.py
t.py:5:5: S101 Use of `assert` detected
Found 1 error.

But sometimes assert isinstance(...) is used for mypy type narrowing.

Unfortunately... I think this is probably unresolvable. S101 is a security-related check (to avoid using assert statements as a means of preventing code execution, e.g., for authorization, since assert statements can be disabled at runtime via -O), so the bar to making exceptions needs to be quite high, and I don't see how we can know that an assertion is being used exclusively for type narrowing but not for such runtime-related enforcement.
I'd probably recommend just disabling S101 or even the S rules altogether outside of security-sensitive contexts. If you're in a security-sensitive context, and are enforcing these rules, then I think it's probably correct to require case-by-case # noqa disablement.


doc: add comprehensive About section to lib.rs [doc: 3/N]

This is split-out 3/N from #1264 to improve reviewability.
This adds an About section that discusses the value-add and possible use-cases.
Steps to Un-draft

merge #1290 and rebase onto

Checklist

[ ] Sensible git history (for example, squash "typo" or "fix" commits). See the Rewriting History guide for help.
[ ] Update the changelog (if necessary)

Hm.. I spent much more time on the phrasing of these paragraphs than I'd like to admit 😆 But I think, that the newly written paragraphs are motivating enough so that people use our library.

Thanks for your input. I think, I came up with something even better. What do youthink?


Automated cherry pick of #4676: fix: guest network default share scope should be system if non-default-domain-projects is off

Cherry pick of #4676 on release/3.0.
#4676: fix: guest network default share scope should be system if non-default-domain-projects is off

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/3.0@6ecf644). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff              @@
##             release/3.0   #4682   +/-   ##
=============================================
  Coverage               ?   6.79%
=============================================
  Files                  ?     524
  Lines                  ?   89596
  Branches               ?       0
=============================================
  Hits                   ?    6090
  Misses                 ?   83000
  Partials               ?     506

Flag
Coverage Δ

#aFlag
6.79% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/networks.go
0.53% <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 6ecf644...95565e4. Read the comment docs.


Reactions with isoenzymes are not split correctly if proteomics data is provided

Hello :)
I would like to integrate proteomics data. But it seems that the reactions that have isoenzymes are not split correctly. I saw it with my metabolic model, but also in the model provided here "iJO1366_sMOMENT_2019_06_25_GECKO_ANALOGON.xml". For example the reaction PFK is split into PFK_GPRSPLIT_1 and PFK_GPRSPLIT_2. Each reaction should have only one of the isoenzymes in the reactants but the reactions are identical and they contain both isoenzymes and also the protein_pool.
        <listOfReactants>
          <speciesReference species="M_atp_c" stoichiometry="1" constant="true"/>
          <speciesReference species="M_f6p_c" stoichiometry="1" constant="true"/>
          <speciesReference species="M_ENZYME_b3916" stoichiometry="3.77565590812736e-06" constant="true"/>
          <speciesReference species="M_ENZYME_b1723" stoichiometry="3.77565590812736e-06" constant="true"/>
          <speciesReference species="M_prot_pool" stoichiometry="0.000122541206209238" constant="true"/>
        </listOfReactants>
        <listOfProducts>
          <speciesReference species="M_adp_c" stoichiometry="1" constant="true"/>
          <speciesReference species="M_fdp_c" stoichiometry="1" constant="true"/>
          <speciesReference species="M_h_c" stoichiometry="1" constant="true"/>
          <speciesReference species="M_armm_PFK" stoichiometry="1" constant="true"/>
        </listOfProducts>

I have been trying to figure out how to fix it and one problem I found is in the script create_smoment_model_reaction_wise.py.
The function get_model_with_separated_measured_enzyme_reactions() updates the objects reaction_id_gene_rules_mapping and reaction_id_gene_rules_protein_stoichiometry_mapping where I assume it creates new gene rules for these split reactions.
However, later in the script in the main loop, the string "_GPRSPLIT_" is removed from the reaction_id and then gene_rules are retrieved for the original reaction instead of the split reactions.
Another problem seems to be that it always adds the protein_pool metabolite even if there is proteomics data available. I think this is because of the line 304  reaction.add_metabolites(metabolites). It is always run even if the reaction already contains the individual enzyme. Would it make sense to add a condition that if all proteomics data is available, this line would not be run?
Thanks in advance :)

See #27 :-)


Update to FCS 40

We're blocked from doing this until fantomas has a version that supports FCS 40. There's a branch with that work, but no prerelease/stable quite yet.

Wouldn't be a good idea to keep FCS used here in sync with FCS version in Fantomas? Had problems using different versions
Heck, I even though about including FsAst into Fantomas (maybe in a .Writers namespace) since they are always used together

Wouldn't be a good idea to keep FCS used here in sync with FCS version in Fantomas? Had problems using different versions

yes, that's precisely why the associated MR is in draft state still :p

@nojaf speaking of, any idea when the first prereleases of fantomas with FCS40 will drop? I'm also looking forward to those for FSAC itself

Hey, yeah about that 🙈. I'm currently pitching the idea of having a patch release for FCS 40. There is one thing that just really doesn't produce AST anymore. And another fix that would allow for a huge clean up in Fantomas.
I've poked @vzarytovskii about it and they would discuss it internally.

the thing is, even that proposed patch release would be a major version bump. so it sounds like you're suggesting skipping 40 entirely?

It has crossed my mind, to be honest. The daemon experiment could potentially resolve the hurdle in FSAC.
And as for FsAst, I'm not sure what the impact would be. If there is any...

https://www.nuget.org/packages/FSharp.Compiler.Service/40.0.1-preview.21352.5 just dropped, I'll check over the weekend if I can publish the first alpha.


Removing SQLite.swift Dependency

Hello! Here's a PR that removes the dependency on SQLite.swift ( #17  ).
The SQLite C APIs are hilariously verbose, and I was aiming to keep this code as readable and maintainable as possible. This meant keeping all of the SQLite command strings in-line with their methods.
✅ All tests pass.
From the commit:

Adds .DS_Store files to gitignore
Rewrites the SQLiteStorageEngine to use the built-in SQLite C API
Removes SQLite.swift dependency
Updates SQLiteStorageEngine test file to delete store after test completion
Verified that all tests pass

Hey @brettohland, this looks great! Thank you so much for this contribution, it not only looks great (to my somewhat untrained raw SQLite eyes), but it's incredibly helpful because I've wanted to do this for quite some time.
I've taken a cursory look at it and I'll be very happy to merge this in when I have time for a closer look. I want to properly set expectations and not make you think that I'm ignoring it, but I'm on a bit of a tight deadline in non-open source land, and am very close to shipping a new app. Because of that I won't be able to merge this into main for another week or two, but if you'd like to merge this onto another branch (I can make one called remove-sqlite-swift if it helps) I'll get this onto that branch, and merge it onto main when I have more time for testing.
Would love to know how that sounds, and once again thank you for the help. 🙂

Hey @brettohland, this looks great! Thank you so much for this contribution, it not only looks great (to my somewhat untrained raw SQLite eyes), but it's incredibly helpful because I've wanted to do this for quite some time.

Glad to help. I'm integrating Boutique into a project where I really can't have stray third party dependencies coming in so I was going to do this work anyway. It was serendipitous that you had this help wanted issue already created for it. Glad to help.

I've taken a cursory look at it and I'll be very happy to merge this in when I have time for a closer look. I want to properly set expectations and not make you think that I'm ignoring it, but I'm on a bit of a tight deadline in non-open source land, and am very close to shipping a new app. Because of that I won't be able to merge this into main for another week or two, but if you'd like to merge this onto another branch (I can make one called remove-sqlite-swift if it helps) I'll get this onto that branch, and merge it onto main when I have more time for testing.
Would love to know how that sounds, and once again thank you for the help. 🙂

No worries on the merge being a few weeks out, the project this is getting integrated is still in its awkward toddler phase right now so the extra dependency isn't an issue. Since I'm accessing this through Boutique anyway, having a branch cut wouldn't be worth it.

Since I closed out #20 I'm closing out this related pull request. Thank you so much for the hard work, even though I won't be integrating this I still appreciate the effort. 🙇🏻♂


Can't curate on figurl

When trying to curate a new sort in figurl today, I found that there was no curation button. I set the permission to true when running SpikeSortingWorkspace, and I also followed the instructions on figurl to make sure that my email address has the permission. But I still don't see the curation button. What could be the issue? Thank you!

@xlsun79 @khl02007 please try now. I'm pretty sure I fixed it. (No need to update the backend, this was an issue with the GUI)


Can't make it work

Hi,
I'm using Grafana 3.0 with InfluxDB and can't make this heatmap working. No content is displayed. Is there any trick that needs to be done in the query to make it work?

Oops, I test it with latest Grafana, it doesn't work now.
I'll check the error and fix it.

Please do, we really would like to use heatmap functionality.

The problem might be caused by legend name handling.
If it doesn't contains symbol characters, it works.
I'll fix the issue in this week.

I fix the error (in my env).
Would you update the plugin and test it?

Yes. Sure. Thanks!

I still can't make it work. Whatever query I make, nothing is displayed on the panel. Can you share example of the correct query for influxdb to make it work.

Sorry for late reply.
Personally I don't use InfluxDB, I use Prometheus.
I install Grafana 3.0.4-1464167696 release version, and add panel, it works.

Can you share screenshot, and if there are error dialog, please share error message.

Let me explain my query. However I’m not sure if this is correct query for your heatmap.
I want to show a heatmap of average CPU load where dimensions are time and racks. Time dimension should be drawn on X-axis and different racks should be drawn on Y-axis. I’m not sure if I should use GROUP BY to define dimensions (axis) for the heatmap.
To achieve this, I have the following query in Grafana:

Unfortunately, as a result of this, nothing is drawn on the panel.

Interesting is that after saving a dashboard, going to some other dashboard, and going back to dashboard with heatmap, the following error occurs on the panel: t is undefined

I notice that the query editor has some bug, so the error is shown after dashboard save, might be caused by the bug.
And, I don't know well about InfluxDB query, is the query can draw on normal Graph panel?

I'm also strugeling to make it work, could you provide an example db & query for influxdb?

@sikadiamond
Sorry, I don't use this with InfluxDB.
Do you try to use InfluxDB histogram() function?

I don't promise InfluxDB support, but I'll try to use this with InfluxDB.

I have not, see: https://docs.influxdata.com/influxdb/v0.13/query_language/functions/#histogram

I got it to work. Sorry about this.

That's great!
Anyway, I'll try to use InfluxDB, and check how this plugin work.

I check the behavior of this plugin, when using with InfluxDB.
And, I found a bug, fix it. https://github.com/mtanda/grafana-heatmap-epoch-panel/commit/8800fc30efc7defcca3fbed247daf7f48e9215d6
(Ignore first InfluxDB query which respond empty result.)

Should work with InfluxDB, so close this issue.


Fix hands-on since environment is no longer required

What this PR does / why we need it:
Which issue(s) this PR fixes:
Fixes #
Does this PR introduce a user-facing change?:

NONE

Nice catch
/lgtm

I fixed typo in this PR title:)
/approve


fix dx11 DrawAuto problem

Description

add LatchSOProperties() call in DarwAuto,

This omission is deliberate, DrawAuto uses the results of stream out for drawing - it doesn't do stream out itself.


Clarify whats in each cert dir, and feature request for cert reissuance as an ansible role

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
Feature request as well as asking for clarification about certs, and certs re-issuance for existing hosts.
I currently have two directories (/etc/kubernetes/ssl/ and  /etc/ssl/etcd/ssl/) of certs on all of my deployments (on each node). I have 5+ different clusters deployed using kubespray.
diff /etc/ssl/etcd/ssl/node-node6-key.pem /etc/kubernetes/ssl/node-node6-key.pem

// will show these are two different keys and I am not sure why

In any case, I need to re-issue certs on all my systems, because I wanna start using central DNS, and I mistakenly deployed these clusters with hard-coded ip addresses (as my inventory below would show). As I understand it, each of those TLS certs are now hardcoded to my ip addresses, and will require re-issuance (correct me if I am wrong please).
Environment:

Cloud provider or hardware configuration:
vSphere

OS (printf "$(uname -srm)\n$(cat /etc/os-release)\n"):

Linux 4.14.11-coreos x86_64
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1632.1.0
VERSION_ID=1632.1.0
BUILD_ID=2018-01-05-0908
PRETTY_NAME="Container Linux by CoreOS 1632.1.0 (Ladybug)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
COREOS_BOARD="amd64-usr"

Version of Ansible (ansible --version):
ansible 2.5.3

Kubespray version (commit) (git rev-parse --short HEAD):
c4b1808983b
Certs in 2 locations
dev-k8s-node-02 core # cd /etc/kubernetes/ssl/
dev-k8s-node-02 ssl # ls
admin-node2-key.pem  ca.pem                      kube-controller-manager-key.pem  kube-proxy-node2.pem      kube-proxy-node5-key.pem  kube-scheduler.pem  node-node3-key.pem  node-node5.pem
admin-node2.pem      front-proxy-ca-key.pem      kube-controller-manager.pem      kube-proxy-node3-key.pem  kube-proxy-node5.pem      node-node1-key.pem  node-node3.pem      node-node6-key.pem
apiserver-key.pem    front-proxy-ca.pem          kube-proxy-node1-key.pem         kube-proxy-node3.pem      kube-proxy-node6-key.pem  node-node1.pem      node-node4-key.pem  node-node6.pem
apiserver.pem        front-proxy-client-key.pem  kube-proxy-node1.pem             kube-proxy-node4-key.pem  kube-proxy-node6.pem      node-node2-key.pem  node-node4.pem      service-account-key.pem
ca-key.pem           front-proxy-client.pem      kube-proxy-node2-key.pem         kube-proxy-node4.pem      kube-scheduler-key.pem    node-node2.pem      node-node5-key.pem

dev-k8s-node-02 ssl # ls /etc/ssl/etcd/ssl/
admin-node2-key.pem  ca-key.pem  member-node2-key.pem  node-node1-key.pem  node-node2-key.pem  node-node3-key.pem  node-node4-key.pem  node-node5-key.pem  node-node6-key.pem
admin-node2.pem      ca.pem      member-node2.pem      node-node1.pem      node-node2.pem      node-node3.pem      node-node4.pem

Example Inventory File
[all]
node1 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity
node2 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity
node3 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity
node4 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity
node5 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity
node6 ansible_host=<IP_ADDRESS> ip=<IP_ADDRESS> ansible_ssh_user=core ansible_ssh_private_key_file=~/.ssh/some-identity

# ## configure a bastion host if your nodes are not directly reachable
# bastion ansible_host=x.x.x.x ansible_user=some_user

[kube-master]
node1
node2

[etcd]
node1
node2
node3

[kube-node]
node2
node3
node4
node5
node6

[kube-ingress]
node2
node3

[k8s-cluster:children]
kube-master
kube-node
kube-ingress

Anyone care to comment? With some clarity, I might be able to take a knack at this.

@charandas If you do some dig in doc or code you probably found this:
vault usage  and there you have short clarification:
As a result of the Vault role will be create separated Root CA for etcd, kubernetes and vault. Also, if you intend to use a Root or Intermediate CA generated elsewhere, you'll need to copy the certificate and key to the hosts in the vault group prior to running the vault role. By default, they'll be located at:

vault:
......
etcd:
/etc/ssl/etcd/ssl/ca.pem
/etc/ssl/etcd/ssl/ca-key.pem
kubernetes:
/etc/kubernetes/ssl/ca.pem
/etc/kubernetes/ssl/ca-key.pem

This doc is not precise as you would expect but as I understand for different services kubesrapy use different certificates. So you do not have a one global certificate per host but separate certs per services: vault, kubernetes, etcd, calico, etc...

That helps @kaarolch. Since there would be quite a number of certs since we have them per application, I wonder if it would make sense if the feature-request is pertinent to any other users out there?

Two days ago I think that maybe would be easier to describe the certificate generation process but I was not sure if anyone need it:) Now I know that would be nice to have I would say short certificated. I can handle it.

@kaarolch to clarify, you will be working on the docs only, or an ansible role as well?

I was more thinking about documentation. The gen_cert role is defined for different services i.e.: etc certs
Also I'm not sure what plan for certificates maintainers have.  Currently there are a few places where the same script was used:

kuberentes
etcd

Btw. I'm not sure if you have to regenerate certificates if you introduce central DNS. Do you have any purpose for it?

Thanks for engaging me on this. So i have a disaster recovery scenario where my VMs are replicated to another environment with different static ips than they were.
Do you see how that would break the certs if they are hard coded to the first set of ip addresses?

I guess that there are more place that you need change configuration. I can look on it tomorrow but from my perspective in this case this would be a little tricky if you would like to recover each node from backup as I correctly understand yours scenario.

@kaarolch what would that configuration be? I am asking assuming the ip addresses are the only part in configuration, and I plan on eradicating using common DNS names in both systems.
Lastly, my hypervisor (VMWare) does all this VM syncing in memory (with help of Zerto), and my sysadmin tells me the VM doesn't notice much of a blip. It just thinks its resuming where it left off and there isn't even a power cycle involved.

@kaarolch I actually realized this morning that you are right, there is much more to it than certs if I am transitioning an existing cluster. Those IPs must have made to several config files in the initial run.

@charandas Sorry I was quite busy today and forgot to answer. Yes, there would be a lot things to change from my perspective the better option would have separate cluster (A, B) and some switch between or just one kube cluster splitted between DC. The only options that your scenario would works correctly is the same IP inside vmware cluster network. If I understand correctly you would like to achive active/passive infra but passive is like online mirror (cpu, memory, disk, etc.) This probably won't be so easy.


White space at the end of comments page

Problem Description
Upon loading all comments, the page doesn't "bottom out" at the footer. You can scroll to the end of the comments, then blow past the comments and footer to a chunk of white space.
Reproduction Steps
(see above)
Expected Behavior
The footer is the last thing visible on the page in all cases.
Additional Information
Please add any additional details, like your browser version, code environment, database version, etc.

Device:

[ ] Desktop
[ ] Tablet
[ ] Mobile

Browser and version (if you know it):

[ ] chrome
[ ] firefox
[ ] edge
[ ] safari
[ ] other: ...
Version: ...

Operating System and version:

[ ] windows
[ ] mac
[ ] linux and Distro: ...
Version: ...

Anything else?

Unable to replicate on Chrome 89.0.4389.114 at 1829 x 1000, will need to test on other browsers and resolutions to see what's up.