[Bug] Issue with PayPalClientInterface

SyliusPayPalPlugin version affected: 1.12.15
Description
Executing script cache:clear [KO]
 [KO]
Script cache:clear returned with error code 1
!!
!!  In CheckExceptionOnInvalidReferenceBehaviorPass.php line 119:
!!
!!    The service "Sylius\PayPalPlugin\Client\PayPalClientInterface" has a depend
!!    ency on a non-existent service "Psr\Http\Message\RequestFactoryInterface".
!!
!!
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "JMS\SerializerBundle\JMSSerializerBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::boot()" might add "void" as a native return type declaration in the future. Do the same in child class "Knp\Bundle\GaufretteBundle\KnpGaufretteBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "Sylius\Bundle\ShopBundle\SyliusShopBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "ApiPlatform\Symfony\Bundle\ApiPlatformBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "ApiPlatform\Symfony\Bundle\ApiPlatformBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::registerCommands()" might add "void" as a native return type declaration in the future. Do the same in child class "Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!  2024-04-29T14:32:18+00:00 [info] User Deprecated: Method "Symfony\Component\HttpKernel\Bundle\Bundle::build()" might add "void" as a native return type declaration in the future. Do the same in child class "League\FlysystemBundle\FlysystemBundle" now to avoid errors or add an explicit @return annotation to suppress this message.
!!
Script @auto-scripts was called via post-install-cmd
unable to run /usr/local/bin/composer install --no-interaction

Steps to reproduce
Setup a standard Sylius
Possible Solution
I will update the issue if I found a solution

I had the same issue yesterday, i just found out that this is due to the fact that during the composer update from an old version directly to 1.6, Symfony Flex do not configure php-http/discovery package, and it leads to this error.
Instead of doing this, i tried to do smaller updates by firstly requiring 1.5.* with composer require sylius/paypal-plugin "1.5.*" and then doing composer require sylius/paypal-plugin "^1.6". This way it properly trigger the configuration of the discovery package.

I also have this message when I retry my composer require
symfony composer require --no-install --no-scripts --no-progress sylius/sylius="~1.12.0"

  curl error 6 while downloading https://repo.packagist.org/p2/psr/http-factory-implementation.json: getaddrinfo() thread failed to start

This URL is in 404 https://repo.packagist.org/p2/psr/http-factory-implementation.json

All my command ran and the output if it can helps :
(cd tests/Application && symfony composer config repositories.plugin '{"type": "path", "url": "../../"}')

(cd tests/Application && symfony composer config extra.symfony.allow-contrib true)

(cd tests/Application && symfony composer config minimum-stability dev)

(cd tests/Application && symfony composer config --no-plugins allow-plugins true)

(cd tests/Application && symfony composer require --no-install --no-scripts --no-progress sylius/sylius="~1.12.0")

  ./composer.json has been updated
  Running composer update sylius/sylius
  Loading composer repositories with package information
  Updating dependencies
  Lock file operations: 245 installs, 0 updates, 0 removals
    - Locking aeon-php/calendar (1.0.9)
    - Locking alcohol/iso4217 (4.1.0)
    - Locking api-platform/core (v2.7.18)
    - Locking babdev/pagerfanta-bundle (v3.8.0)
    - Locking behat/behat (v3.14.0)
    - Locking behat/gherkin (v4.9.0)
    - Locking behat/mink-selenium2-driver (v1.6.0)
    - Locking behat/transliterator (v1.5.0)
    - Locking brick/math (0.12.1)
    - Locking clue/stream-filter (v1.7.0)
    - Locking coduo/php-matcher (6.0.14)
    - Locking coduo/php-to-string (3.2.1)
    - Locking dbrekelmans/bdi (1.3.0)
    - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
    - Locking dmore/behat-chrome-extension (1.4.0)
    - Locking dmore/chrome-mink-driver (2.9.2)
    - Locking doctrine/annotations (2.0.1)
    - Locking doctrine/cache (2.2.0)
    - Locking doctrine/collections (1.8.0)
    - Locking doctrine/common (3.4.4)
    - Locking doctrine/data-fixtures (1.7.0)
    - Locking doctrine/dbal (3.8.4)
    - Locking doctrine/deprecations (1.1.3)
    - Locking doctrine/doctrine-bundle (2.11.1)
    - Locking doctrine/doctrine-migrations-bundle (3.3.0)
    - Locking doctrine/event-manager (1.2.0)
    - Locking doctrine/inflector (2.0.10)
    - Locking doctrine/instantiator (1.5.0)
    - Locking doctrine/lexer (2.1.1)
    - Locking doctrine/migrations (3.7.4)
    - Locking doctrine/orm (2.15.5)
    - Locking doctrine/persistence (3.3.2)
    - Locking doctrine/sql-formatter (1.2.0)
    - Locking egulias/email-validator (3.2.6)
    - Locking enshrined/svg-sanitize (0.16.0)
    - Locking ezyang/htmlpurifier (v4.17.0)
    - Locking fakerphp/faker (v1.23.1)
    - Locking friends-of-behat/mink (v1.11.0)
    - Locking friends-of-behat/mink-browserkit-driver (v1.6.2)
    - Locking friends-of-behat/mink-debug-extension (v2.1.0)
    - Locking friends-of-behat/mink-extension (v2.7.5)
    - Locking friends-of-behat/page-object-extension (v0.3.2)
    - Locking friends-of-behat/suite-settings-extension (v1.1.0)
    - Locking friends-of-behat/symfony-extension (v2.5.0)
    - Locking friends-of-behat/variadic-extension (v1.6.0)
    - Locking friendsofphp/proxy-manager-lts (v1.0.18)
    - Locking friendsofsymfony/rest-bundle (3.7.1)
    - Locking gedmo/doctrine-extensions (v3.15.0)
    - Locking guzzlehttp/guzzle (6.5.8)
    - Locking guzzlehttp/promises (1.5.3)
    - Locking guzzlehttp/psr7 (1.9.1)
    - Locking hamcrest/hamcrest-php (v2.0.1)
    - Locking imagine/imagine (1.3.5)
    - Locking instaclick/php-webdriver (1.4.19)
    - Locking jms/metadata (2.8.0)
    - Locking jms/serializer (3.30.0)
    - Locking jms/serializer-bundle (4.2.0)
    - Locking knplabs/gaufrette (v0.11.1)
    - Locking knplabs/knp-gaufrette-bundle (v0.8.0)
    - Locking knplabs/knp-menu (v3.5.0)
    - Locking knplabs/knp-menu-bundle (v3.4.1)
    - Locking laminas/laminas-code (4.13.0)
    - Locking laminas/laminas-stdlib (3.19.0)
    - Locking lchrusciel/api-test-case (v5.2.0)
    - Locking lcobucci/clock (3.0.0)
    - Locking lcobucci/jwt (4.3.0)
    - Locking league/flysystem (2.5.0)
    - Locking league/flysystem-bundle (2.4.0)
    - Locking league/mime-type-detection (1.15.0)
    - Locking league/uri (6.8.0)
    - Locking league/uri-components (2.4.2)
    - Locking league/uri-interfaces (2.3.0)
    - Locking lexik/jwt-authentication-bundle (v2.17.0)
    - Locking liip/imagine-bundle (2.12.2)
    - Locking marcj/topsort (1.1.0)
    - Locking masterminds/html5 (2.9.0)
    - Locking mockery/mockery (1.6.11)
    - Locking monolog/monolog (2.9.3)
    - Locking myclabs/deep-copy (1.11.1)
    - Locking namshi/jose (7.2.3)
    - Locking nelmio/alice (3.13.5)
    - Locking openlss/lib-array2xml (1.0.0)
    - Locking pagerfanta/pagerfanta (v3.8.0)
    - Locking payum/iso4217 (1.0.2)
    - Locking payum/payum (1.7.4)
    - Locking payum/payum-bundle (2.5.2)
    - Locking phar-io/manifest (2.0.4)
    - Locking phar-io/version (3.2.1)
    - Locking php-http/discovery (1.19.4)
    - Locking php-http/guzzle6-adapter (v2.0.2)
    - Locking php-http/httplug (2.4.0)
    - Locking php-http/message (1.16.1)
    - Locking php-http/message-factory (1.1.0)
    - Locking php-http/promise (1.3.1)
    - Locking php-webdriver/webdriver (1.15.1)
    - Locking phpdocumentor/reflection-common (2.2.0)
    - Locking phpdocumentor/reflection-docblock (5.4.0)
    - Locking phpdocumentor/type-resolver (1.8.2)
    - Locking phpseclib/phpseclib (2.0.47)
    - Locking phpspec/php-diff (v1.1.3)
    - Locking phpspec/phpspec (7.5.0)
    - Locking phpspec/prophecy (v1.19.0)
    - Locking phpstan/extension-installer (1.3.1)
    - Locking phpstan/phpdoc-parser (1.28.0)
    - Locking phpstan/phpstan (1.10.67)
    - Locking phpstan/phpstan-doctrine (1.3.69)
    - Locking phpstan/phpstan-webmozart-assert (1.2.6)
    - Locking phpunit/php-code-coverage (7.0.17)
    - Locking phpunit/php-file-iterator (2.0.6)
    - Locking phpunit/php-text-template (1.2.1)
    - Locking phpunit/php-timer (2.1.4)
    - Locking phpunit/php-token-stream (4.0.4)
    - Locking phpunit/phpunit (8.5.38)
    - Locking phrity/net-uri (1.3.0)
    - Locking phrity/util-errorhandler (1.1.0)
    - Locking polishsymfonycommunity/symfony-mocker-container (v1.0.7)
    - Locking psr/cache (2.0.0)
    - Locking psr/clock (1.0.0)
    - Locking psr/container (2.0.2)
    - Locking psr/event-dispatcher (1.0.0)
    - Locking psr/http-client (1.0.3)
    - Locking psr/http-factory (1.0.2)
    - Locking psr/http-message (1.1)
    - Locking psr/link (2.0.1)
    - Locking psr/log (2.0.0)
    - Locking ralouphie/getallheaders (3.0.3)
    - Locking ramsey/collection (2.0.0)
    - Locking ramsey/uuid (4.7.6)
    - Locking rector/rector (1.0.4)
    - Locking robertfausk/behat-panther-extension (v1.1.2)
    - Locking robertfausk/mink-panther-driver (v1.1.1)
    - Locking sebastian/code-unit-reverse-lookup (1.0.3)
    - Locking sebastian/comparator (3.0.5)
    - Locking sebastian/diff (3.0.6)
    - Locking sebastian/environment (4.2.5)
    - Locking sebastian/exporter (3.1.6)
    - Locking sebastian/global-state (3.0.5)
    - Locking sebastian/object-enumerator (3.0.5)
    - Locking sebastian/object-reflector (1.1.3)
    - Locking sebastian/recursion-context (3.0.2)
    - Locking sebastian/resource-operations (2.0.3)
    - Locking sebastian/type (1.1.5)
    - Locking sebastian/version (2.0.1)
    - Locking slevomat/coding-standard (8.15.0)
    - Locking sonata-project/block-bundle (4.21.0)
    - Locking sonata-project/cache (2.2.0)
    - Locking sonata-project/form-extensions (2.4.0)
    - Locking squizlabs/php_codesniffer (3.9.2)
    - Locking stof/doctrine-extensions-bundle (v1.11.0)
    - Locking stripe/stripe-php (v6.43.1)
    - Locking sylius-labs/association-hydrator (v1.2.1)
    - Locking sylius-labs/coding-standard (v4.3.1)
    - Locking sylius-labs/doctrine-migrations-extra-bundle (v0.2.0)
    - Locking sylius-labs/polyfill-symfony-event-dispatcher (v1.2.0)
    - Locking sylius-labs/polyfill-symfony-framework-bundle (v1.1.1)
    - Locking sylius-labs/polyfill-symfony-security (v1.1.2)
    - Locking sylius/calendar (v0.4.0)
    - Locking sylius/fixtures-bundle (v1.8.0)
    - Locking sylius/grid-bundle (v1.12.1)
    - Locking sylius/mailer-bundle (v2.0.0)
    - Locking sylius/paypal-plugin (v1.6.0)
    - Locking sylius/registry (v1.6.0)
    - Locking sylius/resource-bundle (v1.10.3)
    - Locking sylius/state-machine-abstraction (v1.13.0)
    - Locking sylius/sylius (v1.12.15)
    - Locking sylius/sylius-rector (v2.0)
    - Locking sylius/theme-bundle (v2.3.0)
    - Locking symfony/asset (v6.4.7)
    - Locking symfony/browser-kit (v6.4.7)
    - Locking symfony/cache (v6.4.7)
    - Locking symfony/cache-contracts (v2.5.3)
    - Locking symfony/clock (v6.4.7)
    - Locking symfony/config (v6.4.7)
    - Locking symfony/console (v6.4.7)
    - Locking symfony/css-selector (v6.4.7)
    - Locking symfony/debug-bundle (v6.4.7)
    - Locking symfony/dependency-injection (v6.4.7)
    - Locking symfony/deprecation-contracts (v2.5.3)
    - Locking symfony/doctrine-bridge (v6.4.7)
    - Locking symfony/doctrine-messenger (v6.4.7)
    - Locking symfony/dom-crawler (v6.4.7)
    - Locking symfony/dotenv (v6.4.7)
    - Locking symfony/error-handler (v6.4.7)
    - Locking symfony/event-dispatcher (v6.4.7)
    - Locking symfony/event-dispatcher-contracts (v3.5.0)
    - Locking symfony/expression-language (v6.4.7)
    - Locking symfony/filesystem (v6.4.7)
    - Locking symfony/finder (v6.4.7)
    - Locking symfony/flex (v2.4.5)
    - Locking symfony/form (v6.4.7)
    - Locking symfony/framework-bundle (v6.4.7)
    - Locking symfony/http-client (v6.4.7)
    - Locking symfony/http-client-contracts (v3.5.0)
    - Locking symfony/http-foundation (v6.4.7)
    - Locking symfony/http-kernel (v6.4.7)
    - Locking symfony/intl (v6.4.7)
    - Locking symfony/mailer (v6.4.7)
    - Locking symfony/messenger (v6.4.7)
    - Locking symfony/mime (v6.4.7)
    - Locking symfony/monolog-bridge (v6.4.7)
    - Locking symfony/monolog-bundle (v3.10.0)
    - Locking symfony/options-resolver (v6.4.7)
    - Locking symfony/panther (v2.1.1)
    - Locking symfony/password-hasher (v6.4.7)
    - Locking symfony/polyfill-php83 (v1.29.0)
    - Locking symfony/process (v6.4.7)
    - Locking symfony/property-access (v6.4.7)
    - Locking symfony/property-info (v6.4.7)
    - Locking symfony/proxy-manager-bridge (v6.4.7)
    - Locking symfony/routing (v6.4.7)
    - Locking symfony/runtime (v6.4.7)
    - Locking symfony/security-bundle (v6.4.7)
    - Locking symfony/security-core (v6.4.7)
    - Locking symfony/security-csrf (v6.4.7)
    - Locking symfony/security-http (v6.4.7)
    - Locking symfony/serializer (v6.4.7)
    - Locking symfony/service-contracts (v3.5.0)
    - Locking symfony/stopwatch (v6.4.7)
    - Locking symfony/string (v6.4.7)
    - Locking symfony/templating (v6.4.7)
    - Locking symfony/translation (v6.4.7)
    - Locking symfony/translation-contracts (v2.5.3)
    - Locking symfony/twig-bridge (v6.4.7)
    - Locking symfony/twig-bundle (v6.4.7)
    - Locking symfony/validator (v6.4.7)
    - Locking symfony/var-dumper (v6.4.7)
    - Locking symfony/var-exporter (v6.4.7)
    - Locking symfony/web-link (v6.4.7)
    - Locking symfony/web-profiler-bundle (v6.4.7)
    - Locking symfony/webpack-encore-bundle (v1.17.2)
    - Locking symfony/workflow (v6.4.7)
    - Locking symfony/yaml (v6.4.7)
    - Locking symplify/easy-coding-standard (11.5.0)
    - Locking textalk/websocket (1.6.3)
    - Locking theofidry/alice-data-fixtures (1.6.0)
    - Locking theseer/tokenizer (1.2.3)
    - Locking twig/intl-extra (v3.9.2)
    - Locking twig/twig (v3.9.3)
    - Locking webmozart/assert (1.11.0)
    - Locking willdurand/hateoas (3.10.0)
    - Locking willdurand/hateoas-bundle (2.6.0)
    - Locking willdurand/jsonp-callback-validator (v2.0.0)
    - Locking willdurand/negotiation (3.1.0)
    - Locking winzou/state-machine (0.4.4)
    - Locking winzou/state-machine-bundle (v0.6.1)
  Writing lock file
  68 package suggestions were added by new dependencies, use `composer suggest` to see details.
  Package php-http/guzzle6-adapter is abandoned, you should avoid using it. Use guzzlehttp/guzzle or php-http/guzzle7-adapter instead.
  Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
  Package sonata-project/cache is abandoned, you should avoid using it. No replacement was suggested.
  Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
  No security vulnerability advisories found

(cd tests/Application && symfony composer install --no-interaction)

  Installing dependencies from lock file (including require-dev)
  Verifying lock file contents can be installed on current platform.
  Package operations: 245 installs, 0 updates, 0 removals
    - Installing php-http/discovery (1.19.4): Extracting archive
    - Installing symfony/flex (v2.4.5): Extracting archive
    - Installing symfony/runtime (v6.4.7): Extracting archive
    - Installing squizlabs/php_codesniffer (3.9.2): Extracting archive
    - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
    - Installing phpstan/phpstan (1.10.67): Extracting archive
    - Installing phpstan/extension-installer (1.3.1): Extracting archive
    - Installing aeon-php/calendar (1.0.9): Extracting archive
    - Installing alcohol/iso4217 (4.1.0): Extracting archive
    - Installing behat/gherkin (v4.9.0): Extracting archive
    - Installing instaclick/php-webdriver (1.4.19): Extracting archive
    - Installing symfony/css-selector (v6.4.7): Extracting archive
    - Installing friends-of-behat/mink (v1.11.0): Extracting archive
    - Installing behat/mink-selenium2-driver (v1.6.0): Extracting archive
    - Installing brick/math (0.12.1): Extracting archive
    - Installing coduo/php-to-string (3.2.1): Extracting archive
    - Installing dbrekelmans/bdi (1.3.0): Extracting archive
    - Installing symfony/process (v6.4.7): Extracting archive
    - Installing symfony/filesystem (v6.4.7): Extracting archive
    - Installing symfony/deprecation-contracts (v2.5.3): Extracting archive
    - Installing symfony/config (v6.4.7): Extracting archive
    - Installing symfony/yaml (v6.4.7): Extracting archive
    - Installing symfony/translation-contracts (v2.5.3): Extracting archive
    - Installing symfony/translation (v6.4.7): Extracting archive
    - Installing psr/event-dispatcher (1.0.0): Extracting archive
    - Installing symfony/event-dispatcher-contracts (v3.5.0): Extracting archive
    - Installing symfony/event-dispatcher (v6.4.7): Extracting archive
    - Installing symfony/var-exporter (v6.4.7): Extracting archive
    - Installing psr/container (2.0.2): Extracting archive
    - Installing symfony/service-contracts (v3.5.0): Extracting archive
    - Installing symfony/dependency-injection (v6.4.7): Extracting archive
    - Installing symfony/string (v6.4.7): Extracting archive
    - Installing symfony/console (v6.4.7): Extracting archive
    - Installing behat/transliterator (v1.5.0): Extracting archive
    - Installing behat/behat (v3.14.0): Extracting archive
    - Installing friends-of-behat/mink-extension (v2.7.5): Extracting archive
    - Installing psr/log (2.0.0): Extracting archive
    - Installing psr/http-message (1.1): Extracting archive
    - Installing phrity/util-errorhandler (1.1.0): Extracting archive
    - Installing psr/http-factory (1.0.2): Extracting archive
    - Installing phrity/net-uri (1.3.0): Extracting archive
    - Installing textalk/websocket (1.6.3): Extracting archive
    - Installing dmore/chrome-mink-driver (2.9.2): Extracting archive
    - Installing dmore/behat-chrome-extension (1.4.0): Extracting archive
    - Installing psr/cache (2.0.0): Extracting archive
    - Installing doctrine/deprecations (1.1.3): Extracting archive
    - Installing doctrine/lexer (2.1.1): Extracting archive
    - Installing doctrine/annotations (2.0.1): Extracting archive
    - Installing doctrine/cache (2.2.0): Extracting archive
    - Installing doctrine/sql-formatter (1.2.0): Extracting archive
    - Installing ezyang/htmlpurifier (v4.17.0): Extracting archive
    - Installing masterminds/html5 (2.9.0): Extracting archive
    - Installing symfony/dom-crawler (v6.4.7): Extracting archive
    - Installing symfony/browser-kit (v6.4.7): Extracting archive
    - Installing friends-of-behat/mink-browserkit-driver (v1.6.2): Extracting archive
    - Installing friends-of-behat/mink-debug-extension (v2.1.0): Extracting archive
    - Installing friends-of-behat/page-object-extension (v0.3.2): Extracting archive
    - Installing friends-of-behat/suite-settings-extension (v1.1.0): Extracting archive
    - Installing symfony/polyfill-php83 (v1.29.0): Extracting archive
    - Installing symfony/http-foundation (v6.4.7): Extracting archive
    - Installing symfony/var-dumper (v6.4.7): Extracting archive
    - Installing symfony/error-handler (v6.4.7): Extracting archive
    - Installing symfony/http-kernel (v6.4.7): Extracting archive
    - Installing friends-of-behat/symfony-extension (v2.5.0): Extracting archive
    - Installing friends-of-behat/variadic-extension (v1.6.0): Extracting archive
    - Installing guzzlehttp/promises (1.5.3): Extracting archive
    - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
    - Installing imagine/imagine (1.3.5): Extracting archive
    - Installing phpstan/phpdoc-parser (1.28.0): Extracting archive
    - Installing jms/metadata (2.8.0): Extracting archive
    - Installing doctrine/instantiator (1.5.0): Extracting archive
    - Installing jms/serializer (3.30.0): Extracting archive
    - Installing laminas/laminas-code (4.13.0): Extracting archive
    - Installing webmozart/assert (1.11.0): Extracting archive
    - Installing symfony/property-info (v6.4.7): Extracting archive
    - Installing symfony/property-access (v6.4.7): Extracting archive
    - Installing sebastian/recursion-context (3.0.2): Extracting archive
    - Installing sebastian/exporter (3.1.6): Extracting archive
    - Installing sebastian/diff (3.0.6): Extracting archive
    - Installing sebastian/comparator (3.0.5): Extracting archive
    - Installing myclabs/deep-copy (1.11.1): Extracting archive
    - Installing fakerphp/faker (v1.23.1): Extracting archive
    - Installing nelmio/alice (3.13.5): Extracting archive
    - Installing theofidry/alice-data-fixtures (1.6.0): Extracting archive
    - Installing symfony/routing (v6.4.7): Extracting archive
    - Installing symfony/finder (v6.4.7): Extracting archive
    - Installing symfony/cache-contracts (v2.5.3): Extracting archive
    - Installing symfony/cache (v6.4.7): Extracting archive
    - Installing symfony/framework-bundle (v6.4.7): Extracting archive
    - Installing sebastian/version (2.0.1): Extracting archive
    - Installing sebastian/type (1.1.5): Extracting archive
    - Installing sebastian/resource-operations (2.0.3): Extracting archive
    - Installing sebastian/object-reflector (1.1.3): Extracting archive
    - Installing sebastian/object-enumerator (3.0.5): Extracting archive
    - Installing sebastian/global-state (3.0.5): Extracting archive
    - Installing sebastian/environment (4.2.5): Extracting archive
    - Installing phpunit/php-timer (2.1.4): Extracting archive
    - Installing phpunit/php-text-template (1.2.1): Extracting archive
    - Installing phpunit/php-file-iterator (2.0.6): Extracting archive
    - Installing theseer/tokenizer (1.2.3): Extracting archive
    - Installing sebastian/code-unit-reverse-lookup (1.0.3): Extracting archive
    - Installing phpunit/php-token-stream (4.0.4): Extracting archive
    - Installing phpunit/php-code-coverage (7.0.17): Extracting archive
    - Installing phar-io/version (3.2.1): Extracting archive
    - Installing phar-io/manifest (2.0.4): Extracting archive
    - Installing phpunit/phpunit (8.5.38): Extracting archive
    - Installing phpspec/php-diff (v1.1.3): Extracting archive
    - Installing openlss/lib-array2xml (1.0.0): Extracting archive
    - Installing doctrine/event-manager (1.2.0): Extracting archive
    - Installing doctrine/persistence (3.3.2): Extracting archive
    - Installing doctrine/inflector (2.0.10): Extracting archive
    - Installing doctrine/dbal (3.8.4): Extracting archive
    - Installing doctrine/common (3.4.4): Extracting archive
    - Installing doctrine/collections (1.8.0): Extracting archive
    - Installing doctrine/orm (2.15.5): Extracting archive
    - Installing symfony/doctrine-bridge (v6.4.7): Extracting archive
    - Installing doctrine/doctrine-bundle (2.11.1): Extracting archive
    - Installing doctrine/data-fixtures (1.7.0): Extracting archive
    - Installing coduo/php-matcher (6.0.14): Extracting archive
    - Installing lchrusciel/api-test-case (v5.2.0): Extracting archive
    - Installing psr/clock (1.0.0): Extracting archive
    - Installing lcobucci/clock (3.0.0): Extracting archive
    - Installing lcobucci/jwt (4.3.0): Extracting archive
    - Installing league/mime-type-detection (1.15.0): Extracting archive
    - Installing league/flysystem (2.5.0): Extracting archive
    - Installing league/uri-interfaces (2.3.0): Extracting archive
    - Installing league/uri (6.8.0): Extracting archive
    - Installing league/uri-components (2.4.2): Extracting archive
    - Installing marcj/topsort (1.1.0): Extracting archive
    - Installing namshi/jose (7.2.3): Extracting archive
    - Installing payum/iso4217 (1.0.2): Extracting archive
    - Installing psr/http-client (1.0.3): Extracting archive
    - Installing php-http/promise (1.3.1): Extracting archive
    - Installing php-http/httplug (2.4.0): Extracting archive
    - Installing clue/stream-filter (v1.7.0): Extracting archive
    - Installing php-http/message (1.16.1): Extracting archive
    - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
    - Installing phpdocumentor/type-resolver (1.8.2): Extracting archive
    - Installing phpdocumentor/reflection-docblock (5.4.0): Extracting archive
    - Installing phpspec/prophecy (v1.19.0): Extracting archive
    - Installing phpspec/phpspec (7.5.0): Extracting archive
    - Installing phpstan/phpstan-doctrine (1.3.69): Extracting archive
    - Installing phpstan/phpstan-webmozart-assert (1.2.6): Extracting archive
    - Installing mockery/mockery (1.6.11): Extracting archive
    - Installing polishsymfonycommunity/symfony-mocker-container (v1.0.7): Extracting archive
    - Installing ralouphie/getallheaders (3.0.3): Extracting archive
    - Installing ramsey/collection (2.0.0): Extracting archive
    - Installing symfony/http-client-contracts (v3.5.0): Extracting archive
    - Installing symfony/http-client (v6.4.7): Extracting archive
    - Installing php-webdriver/webdriver (1.15.1): Extracting archive
    - Installing symfony/panther (v2.1.1): Extracting archive
    - Installing robertfausk/mink-panther-driver (v1.1.1): Extracting archive
    - Installing robertfausk/behat-panther-extension (v1.1.2): Extracting archive
    - Installing sonata-project/cache (2.2.0): Extracting archive
    - Installing twig/twig (v3.9.3): Extracting archive
    - Installing symfony/validator (v6.4.7): Extracting archive
    - Installing symfony/password-hasher (v6.4.7): Extracting archive
    - Installing symfony/security-core (v6.4.7): Extracting archive
    - Installing symfony/security-csrf (v6.4.7): Extracting archive
    - Installing symfony/options-resolver (v6.4.7): Extracting archive
    - Installing symfony/form (v6.4.7): Extracting archive
    - Installing sonata-project/form-extensions (2.4.0): Extracting archive
    - Installing stripe/stripe-php (v6.43.1): Extracting archive
    - Installing symplify/easy-coding-standard (11.5.0): Extracting archive
    - Installing slevomat/coding-standard (8.15.0): Extracting archive
    - Installing sylius-labs/coding-standard (v4.3.1): Extracting archive
    - Installing symfony/mime (v6.4.7): Extracting archive
    - Installing egulias/email-validator (3.2.6): Extracting archive
    - Installing symfony/mailer (v6.4.7): Extracting archive
    - Installing symfony/expression-language (v6.4.7): Extracting archive
    - Installing winzou/state-machine (0.4.4): Extracting archive
    - Installing winzou/state-machine-bundle (v0.6.1): Extracting archive
    - Installing willdurand/hateoas (3.10.0): Extracting archive
    - Installing jms/serializer-bundle (4.2.0): Extracting archive
    - Installing willdurand/hateoas-bundle (2.6.0): Extracting archive
    - Installing symfony/intl (v6.4.7): Extracting archive
    - Installing twig/intl-extra (v3.9.2): Extracting archive
    - Installing symfony/asset (v6.4.7): Extracting archive
    - Installing symfony/webpack-encore-bundle (v1.17.2): Extracting archive
    - Installing symfony/twig-bridge (v6.4.7): Extracting archive
    - Installing symfony/twig-bundle (v6.4.7): Extracting archive
    - Installing symfony/templating (v6.4.7): Extracting archive
    - Installing symfony/serializer (v6.4.7): Extracting archive
    - Installing symfony/security-http (v6.4.7): Extracting archive
    - Installing symfony/clock (v6.4.7): Extracting archive
    - Installing symfony/security-bundle (v6.4.7): Extracting archive
    - Installing friendsofphp/proxy-manager-lts (v1.0.18): Extracting archive
    - Installing symfony/proxy-manager-bridge (v6.4.7): Extracting archive
    - Installing monolog/monolog (2.9.3): Extracting archive
    - Installing symfony/monolog-bridge (v6.4.7): Extracting archive
    - Installing symfony/monolog-bundle (v3.10.0): Extracting archive
    - Installing symfony/messenger (v6.4.7): Extracting archive
    - Installing symfony/doctrine-messenger (v6.4.7): Extracting archive
    - Installing sylius/theme-bundle (v2.3.0): Extracting archive
    - Installing sylius/registry (v1.6.0): Extracting archive
    - Installing gedmo/doctrine-extensions (v3.15.0): Extracting archive
    - Installing willdurand/negotiation (3.1.0): Extracting archive
    - Installing willdurand/jsonp-callback-validator (v2.0.0): Extracting archive
    - Installing friendsofsymfony/rest-bundle (3.7.1): Extracting archive
    - Installing pagerfanta/pagerfanta (v3.8.0): Extracting archive
    - Installing babdev/pagerfanta-bundle (v3.8.0): Extracting archive
    - Installing sylius/resource-bundle (v1.10.3): Extracting archive
    - Installing sylius-labs/polyfill-symfony-event-dispatcher (v1.2.0): Extracting archive
    - Installing sylius/mailer-bundle (v2.0.0): Extracting archive
    - Installing sylius/grid-bundle (v1.12.1): Extracting archive
    - Installing sylius/fixtures-bundle (v1.8.0): Extracting archive
    - Installing sylius/calendar (v0.4.0): Extracting archive
    - Installing sylius-labs/polyfill-symfony-security (v1.1.2): Extracting archive
    - Installing sylius-labs/polyfill-symfony-framework-bundle (v1.1.1): Extracting archive
    - Installing symfony/stopwatch (v6.4.7): Extracting archive
    - Installing doctrine/migrations (3.7.4): Extracting archive
    - Installing doctrine/doctrine-migrations-bundle (3.3.0): Extracting archive
    - Installing sylius-labs/doctrine-migrations-extra-bundle (v0.2.0): Extracting archive
    - Installing sylius-labs/association-hydrator (v1.2.1): Extracting archive
    - Installing stof/doctrine-extensions-bundle (v1.11.0): Extracting archive
    - Installing sonata-project/block-bundle (4.21.0): Extracting archive
    - Installing ramsey/uuid (4.7.6): Extracting archive
    - Installing php-http/message-factory (1.1.0): Extracting archive
    - Installing guzzlehttp/psr7 (1.9.1): Extracting archive
    - Installing guzzlehttp/guzzle (6.5.8): Extracting archive
    - Installing php-http/guzzle6-adapter (v2.0.2): Extracting archive
    - Installing payum/payum (1.7.4): Extracting archive
    - Installing payum/payum-bundle (2.5.2): Extracting archive
    - Installing liip/imagine-bundle (2.12.2): Extracting archive
    - Installing lexik/jwt-authentication-bundle (v2.17.0): Extracting archive
    - Installing league/flysystem-bundle (2.4.0): Extracting archive
    - Installing laminas/laminas-stdlib (3.19.0): Extracting archive
    - Installing knplabs/knp-menu (v3.5.0): Extracting archive
    - Installing knplabs/knp-menu-bundle (v3.4.1): Extracting archive
    - Installing knplabs/gaufrette (v0.11.1): Extracting archive
    - Installing knplabs/knp-gaufrette-bundle (v0.8.0): Extracting archive
    - Installing enshrined/svg-sanitize (0.16.0): Extracting archive
    - Installing psr/link (2.0.1): Extracting archive
    - Installing symfony/web-link (v6.4.7): Extracting archive
    - Installing api-platform/core (v2.7.18): Extracting archive
    - Installing sylius/sylius (v1.12.15): Extracting archive
    - Installing symfony/workflow (v6.4.7): Extracting archive
    - Installing sylius/state-machine-abstraction (v1.13.0): Extracting archive
    - Installing phpseclib/phpseclib (2.0.47): Extracting archive
    - Installing sylius/paypal-plugin (v1.6.0): Extracting archive
    - Installing rector/rector (1.0.4): Extracting archive
    - Installing sylius/sylius-rector (v2.0): Extracting archive
    - Installing symfony/debug-bundle (v6.4.7): Extracting archive
    - Installing symfony/dotenv (v6.4.7): Extracting archive
    - Installing symfony/web-profiler-bundle (v6.4.7): Extracting archive
  Package php-http/guzzle6-adapter is abandoned, you should avoid using it. Use guzzlehttp/guzzle or php-http/guzzle7-adapter instead.
  Package php-http/message-factory is abandoned, you should avoid using it. Use psr/http-factory instead.
  Package sonata-project/cache is abandoned, you should avoid using it. No replacement was suggested.
  Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
  Generating autoload files
  136 packages you are using are looking for funding.
  Use the `composer fund` command to find out more!

  Run composer recipes at any time to see the status of your Symfony recipes.

  PHP CodeSniffer Config installed_paths set to ../../slevomat/coding-standard
  phpstan/extension-installer: Extensions installed
  > phpstan/phpstan-doctrine: installed
  > phpstan/phpstan-webmozart-assert: installed
  Executing script cache:clear [KO]
   [KO]
  Script cache:clear returned with error code 1
  !!
  !!  In CheckExceptionOnInvalidReferenceBehaviorPass.php line 119:
  !!
  !!    The service "Sylius\PayPalPlugin\Client\PayPalClientInterface" has a depend
  !!    ency on a non-existent service "Psr\Http\Message\RequestFactoryInterface".
  !!
  !!

If I force my test application with the 1.5.2 version it's ok but we cannot add it in all our plugins.
The best way is to have a working sylius setup.
	(cd ${APP_DIR} && ${COMPOSER} require --no-install --no-scripts --no-progress sylius/sylius="~1.12.0")
	(cd ${APP_DIR} && ${COMPOSER} require --no-install --no-scripts --no-progress sylius/paypal-plugin="~1.5.0")
	(cd ${APP_DIR} && ${COMPOSER} install --no-interaction)

@GSadee Have you got an idea of a fix I can try ?

I had the same issue yesterday, i just found out that this is due to the fact that during the composer update from an old version directly to 1.6, Symfony Flex (?) do not configure php-http/discovery package, and it leads to this error.
Instead of doing this, i tried to do smaller updates by firstly requiring 1.5.* with composer require sylius/paypal-plugin "1.5.*" and then doing composer require sylius/paypal-plugin "^1.6". This way it properly trigger the configuration of the discovery package.

You saved my day ^^

Any news on this issue ? For now we have to restrict manually the version 1.5 in our plugin's test app

Hi Maxime!
First of all, I apologise for the long wait for a reply.
Moving on to the problem, does the one you originally had with thePayPalClientInterface still exist? Because in the message you sent with the failing build:

Here is an example of a CI which fails due to Paypal plugin : https://github.com/monsieurbiz/SyliusRichEditorPlugin/actions/runs/9235367034/job/25410106094
5_Flex recipe (PHP 8.1, Sylius ~1.12.0).txt

there is another error:
Script cache:clear returned with error code 1
!!
!!  In CheckExceptionOnInvalidReferenceBehaviorPass.php line 119:
!!
!!    The service "Sylius\PayPalPlugin\Controller\Webhook\RefundOrderAction" has
!!    a dependency on a non-existent service "sylius_abstraction.state_machine".

This one is because when you created the project, it didn't run the Sylius recipe and didn't add the SyliusStateMachineAbstractionBundle to the bundle list. However, this recipe should be called as it is configured in Sylius-Standard composer.
I have just tested creating Sylius project for version 1.12 with composer create-project sylius/sylius-standard Project "~1.12.0" and had neither the interface nor the state machine problem 🤔.
Can you check it again and confirm if the problem still exists and what specific steps are needed to reproduce?

My bad it is maybe an incorrect CI.
Here is a good one : https://github.com/monsieurbiz/SyliusPluginMaker/actions/runs/9501591688/job/26187956455
And another one : https://github.com/monsieurbiz/SyliusCmsPagePlugin/actions/runs/9347998261/job/25726191502
About the second link, it is interesting to see the other version are all green

The first build you've mentioned is also for PHP 8.2, so the problem is not necessary to be connected with PHP version.
If I see correctly in your builds, Symfony recipes are not made and that could be a problem, because php-http/discovery is not fully configured.
Screenshot from my local installation of Sylius:

After thinking about the problem you encountered with the dependencies in Sylius-Standard and the required use of flex, I thought it would be good to clean it up there, so I have prepared a PR that could potentially solve your problem: https://github.com/Sylius/Sylius-Standard/pull/1002

Tested Sylius-standard on 1.12.x-dev
It seems to drop PHP 8.0 support ?
Sylius 1.12 - PHP 8.0 : https://github.com/monsieurbiz/SyliusRichEditorPlugin/actions/runs/9563476286/job/26362044086?pr=230
Sylius 1.12 - PHP 8.1 : https://github.com/monsieurbiz/SyliusRichEditorPlugin/actions/runs/9563476286/job/26362044659?pr=230
Sylius 1.12 - PHP 8.2 : https://github.com/monsieurbiz/SyliusRichEditorPlugin/actions/runs/9563476286/job/26362045253?pr=230

Thank you for your feedback, I've just released new patches of Sylius-Standard, which should resolve your problems.
About PHP 8.0, yes, I've dropped the support for that version as Sylius-Standard is a project template, we would like to encourage the use of the latest dependencies and PHP 8.0 is no longer supported.
I'm closing the issue, but of course feel free to comment or create another one if needed 😃

Thank you @GSadee


Support multi-statement transactions

This starts supporting multi-statement transactions. It imposes one important restriction that is necessary to ensure the expected ACID guarantees: You cannot write to both a Postgres table and a DuckDB table in the same transaction.
This also means that we do not allow doing DuckDB DDL inside a transaction, because that needs to write both to DuckDB and to the Postgres catalogs.
Either of these restrictions might be removed in a follow up PR. Especifically the DDL restriction is one that we would like to remove (and probably can). But for now this PR only implements the obviously correct case, and any further removal of restrictions will need some design/tradeoffs discussion.
Fixes #419

I merged this a bit quicker than I originally intended, mainly to fix the broken build on the main branch due to this PG change: https://www.postgresql.org/message-id/flat/CAGECzQQS1Oun40BssQDmuHc86teXqr%2BLOndy5NSVdFce9evZvQ%40mail.gmail.com#cf1398dd28d67be9fce7e75096343f07


CustomJSTickFormatter is deprecated and needs to be updated with FuncTickFormatter

There are 3 notebook where CustomJSTickFormatter is used, which may require updating.

bkh.py _ _ all _ _ [ " " ]
sim.py class LetterNetSim init p.yaxis.formatter
init.py  _ _ all _ _ "bokeh exports"

I tried updating the notebooks at my end, but was unable to see the ticks on the plots (it remains blank).

do you see error logs in your browser's console? that'll help diagnose the root cause. your pic seems to have tick labels rendered properly, not looks like the real cause.

Hello Complyue, could it have been because I had updated your code in above 3 places - with FuncTickFormatter?
But unable to get the same result as you had shared on the HTM forum here.

I am currently using the docker version shared by indy on HTM forum. Thus will attempt to try what you have suggested, though haven't done much trouble shooting using browser console.
Anyways, I am grateful for your work here, for it has definitely helped me understand a bit more on how to organize the code.

I reproduced your plot result via Gitpod https://gitpod.io/#https://github.com/complyue/OscBrain, and it seems that bcoz of Bokeh won't work with Jupyter Notebook 7, hopefully Bokeh has an issue marked closed to address a similar problem, but only for version 3.4 which is yet not released. Before that, I verified that downgrade Jupyter Notebook to 6.5.3 can fix the problem, and pushed the change so the Gitpod link will give you a working env.
In case you work with your own env, try conda install notebook=6.x and I expect that'll fix it. No need to modify js code.


Record new auth methods in telemetry

Record new auth methods in telemetry

Codecov Report

Merging #979 into develop will decrease coverage by 0.1%.
The diff coverage is 37.5%.

@@              Coverage Diff              @@
##             develop     #979      +/-   ##
=============================================
- Coverage      41.42%   41.31%   -0.11%
  Complexity       780      780
=============================================
  Files            155      155
  Lines           5620     5613       -7
  Branches         786      784       -2
=============================================
- Hits            2328     2319       -9
- Misses          3124     3126       +2
  Partials         168      168

Impacted Files
Coverage Δ
Complexity Δ

...microsoft/azure/maven/auth/AzureClientFactory.java
0% <ø> (ø)
0 <0> (ø)
:arrow_down:

...a/com/microsoft/azure/maven/AbstractAzureMojo.java
37.1% <37.5%> (-4.36%)
0 <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 ded6377...2e97e63. Read the comment docs.


Update ref-based RNA-seq tutorial

Change datasets
Replace HISAT by STAR (should also fix #552)
Replace HTSeq-count by FeatureCount
Replace DAVID by goseq (to fix #531)
Add heatmap generation
Add more details about the mappers
Move and adapt section about the strandness
Update workflows and tools

Still to do:

[ ] Upload new datasets on Zenodo
[ ] Update the data library

Replace HISAT by STAR

Doesn't this make it more difficult to run the tutorial on low-end computers and Docker images?

@nsoranzo I don't have hard numbers, but what is really expensive is generating the star index. The mapping is okish, especially with dm6.

@bebatut I think this is great. We need to get rid of the old reference-based tutorial. Or perhaps I'll update it. Let me look (for a week or two)

Thanks @nekrut and @nsoranzo


Zend/Http/Client/Adapter/Socket - options for stream context

It is not possible to specify options for the stream context, in php 7 there seems to be something strict on the self signed certificates and peer/host must verify.  Providing         'ssl' => array(
'verify_host' => false,
'verify_peer' => false,
),  options by passes the check and allows the socket creation, without those options it fails and throws an exception.
If its possible to add the ability to pass the options via config like the local_cert and passphrase would be great.

+1

@igor-astsakhov  @NiMeDia It seems to be resolved already as I can see options: sslpassphrase (for passphrase) and sslcert (for local_cert) in Socket adapter.


rethink Flush semantics

Currently FlushCommit will return only the downstream commits not the commit that was flushed. I think we should reconsider that for a couple of reasons.

I think it actually makes more sense to return it and talking to a user offline confirmed this. Anecdotal of course, but we often talk about the thing returned as a consistent snapshot so that feels like it should include the root of the tree as well.
It solves a weird hiccup with usage, suppose we have 2 input repos and someone flushes a commit from 1 of them. To get a consistent snapshot we have to pick a commit from the other input repo since pipelines with 2 inputs are always run with a commit from each. There's no easy way to see which commit we picked, the best you can do is check the provenance of the other commits. Returning input commit from the second repo along with the specified one from the first seems like a pretty elegant way to handle this.

FlushCommit now blocks on the root commit (#3478), but still doesn't return it

I think we thought about changing the semantics on this but decided to stick with what we've got. At this point it's no longer true that we select a commit on other input branches, we use the subvenance of the flushed commits, which is implicitly selecting commits on other input branches, potentially more than one per branch, which would be confusing to get back. I think we're happy with the semantics we have now, it works well for our tests and internal use cases. Users mostly use the FlushJob command, which doesn't have this issue because there aren't input jobs.


Code snippets wrong border radius styling

When a code snippet doesn't have a header, its top corners have 0px radius while bottom corners have 4px radius.

Seems to have been closed by #611


Cannot find module in rethinkdb

when running rethinkdbdash with:
  const r = require('rethinkdbdash')({
    db: name,
    servers: [{
      host: 'localhost',
      port: 28015
    }]
  });

or
  const rethink = require('rethinkdbdash');
  const r = rethink({
    db: name,
    servers: [{
      host: 'localhost',
      port: 28015
    }]
  });

it packages successfully but I cannot run index.exe. it produces the following error:
(node:4348) UnhandledPromiseRejectionWarning: Error: Cannot find module 'C:\snapshot\DatabaseTest\node_modules\rethinkdbdash\lib/helper.js'
Require stack:
- C:\snapshot\DatabaseTest\node_modules\rethinkdbdash\lib\index.js
- C:\snapshot\DatabaseTest\index.js
1) If you want to compile the package/file into executable, please pay attention to compilation warnings and specify a literal in 'require' call. 2) If you don't want to compile the package/file into executable and want to 'require' it from filesystem (likely plugin), specify an absolute path in 'require' call using process.cwd() or process.execPath.
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:608:15)
    at Function.Module._resolveFilename (pkg/prelude/bootstrap.js:1287:46)
    at Function.Module._load (internal/modules/cjs/loader.js:524:27)
    at Module.require (internal/modules/cjs/loader.js:664:19)
    at Module.require (pkg/prelude/bootstrap.js:1166:31)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (C:\snapshot\DatabaseTest\node_modules\rethinkdbdash\lib\index.js:3:14)
    at Module._compile (pkg/prelude/bootstrap.js:1261:22)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:768:10)
    at Module.load (internal/modules/cjs/loader.js:626:32)
    at Function.Module._load (internal/modules/cjs/loader.js:553:12)
    at Module.require (internal/modules/cjs/loader.js:664:19)
    at Module.require (pkg/prelude/bootstrap.js:1166:31)
    at require (internal/modules/cjs/helpers.js:16:16)
    at main (C:\snapshot\DatabaseTest\index.js:0:0)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)
(node:4348) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:4348) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

The official rethinkdb JavaScript driver works fine but I would prefer I didn't have to resort to that.
I have a feeling it has to do with executing the module but I have no clue where to go after that.
Thanks

Fixed it by adding
"bin": "index.js",
"pkg": {
    "scripts": ["node_modules/rethinkdbdash/lib/*.js"]
 }

to package.json. Then I packaged with pkg . from the root of the project. I feel really dumb right about know


Fix multiple warnings when trying to build project

These commits fix two warnings that I encountered when I cloned and tried to build this project.
warning: `D:\kilian\Documents\Prog\dynhost\.cargo\config` is deprecated in favor of `config.toml`
note: if you need to support cargo 1.38 or earlier, you can symlink `config` to `config.toml`

warning: trailing semicolon in macro used in expression position
  --> src/main.rs:17:10
   |
17 |         };
   |          ^
...
81 |     let username = ensure_env!("DYNHOST_USERNAME")
   |                    ------------------------------- in this macro invocation
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
   = note: this warning originates in the macro `ensure_env` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: trailing semicolon in macro used in expression position
  --> src/main.rs:17:10
   |
17 |         };
   |          ^
...
82 |     let password = ensure_env!("DYNHOST_PASSWORD")
   |                    ------------------------------- in this macro invocation
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: this warning originates in the macro `ensure_env` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: trailing semicolon in macro used in expression position
  --> src/main.rs:17:10
   |
17 |         };
   |          ^
...
83 |     let hostname = ensure_env!("DYNHOST_HOSTNAME")
   |                    ------------------------------- in this macro invocation
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
   = note: this warning originates in the macro `ensure_env` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: `dynhost` (bin "dynhost") generated 3 warnings

doh, sorry about that.. I attempted to rebase your branch and ended up pushing the wrong changeset to your repo. That closed this PR and also removed my ability to update your branch in your repo...


Keep special sampling params

See the discussion on #970
I have a model that generates special tokens with important meaning to generation tasks. At present there is no way to get these special tokens back in the generated text because of the hardcoded input to detokenize_incrementally in llm_engine.
This PR adds an optional parameter to SamplingParams

@blahblahasdf Thanks for the PR! Can you change it to skip_special_tokens? I think this will improve the compatibility with HF.

Yup will do.


Update index.html

I have added a head line command to the existing HTML Code

I have added Image to my HTML page

I added some image to my HTML webpage****

Iam a beginner of HTML


Slow speeds cause stair-stepping to fail

I've had this trouble with other stair-stepping solutions, for some reason if the movement vector is too short the stair-stepping kinda misses and just slides along the slope:
https://github.com/wareya/GodotStairTester/assets/16231628/4e4da3e6-b927-47c1-bd57-72c9ed47e580

This is a problem with how the collision margins in Godot work. When you run into the bottom step, you're actually a few fractions of a unit away from it, because of the collision margins. Then, when it looks for the stair step, it only advances by the velocity times delta, which can be less than the collision margin, so there's no floor underneath it.
The current workaround for this is enabling the "Skipping Hack", which tries moving by a fixed distance if moving by the velocity distance fails.

This is a problem with how the collision margins in Godot work. When you run into the bottom step, you're actually a few fractions of a unit away from it, because of the collision margins. Then, when it looks for the stair step, it only advances by the velocity times delta, which can be less than the collision margin, so there's no floor underneath it.
The current workaround for this is enabling the "Skipping Hack", which tries moving by a fixed distance if moving by the velocity distance fails.

Thanks, I should mention this actually doesn't happen really with Godot Physics, it seems to mainly happen with Jolt, which is weird as Jolt should be more precise

It happens with Godot Physics too but only if you increase the collision margins.

It happens with Godot Physics too but only if you increase the collision margins.

Ah, I haven't adjusted those, I wonder if Jolt can be adjusted so it works similarly? (I haven't worked much with Jolt tbh, though it seems like a good alternative to GP even at this stage)


How do you bind event handlers?

How would you bind event handlers to the text area?
I.e
 {{> inputAutocomplete settings=settings id="msg" class="input-xlarge" placeholder="Chat..." data-action="doSomething"}}

Template.foo.events({
  'keyup data-action=doSomething': function() {
    alert('hi');
  }
});

Seems like this isn't possible? Not sure how you'd do anything with a textarea on submitting anything unless this was possible?

That should work as you have it, except for the syntax problem: 'keyup input[data-action="doSomething"]'
Also check out the autocompleteselect event descrbed in the docs.


Add marker

Hello,
I would like to go beyond in the viewer but I don't understand how to add a marker on the map.
With the Leaflet doc, I understand that you are using the simple CRS but I don't know where to put the marker code to add it?

This depends on what you want to do with the marker, but for a simple static marker, the following works:
--- a/viewer/MinedMap.js
+++ b/viewer/MinedMap.js
@@ -193,6 +193,8 @@ window.createMap = function () {
                var coordControl = new CoordControl();
                coordControl.addTo(map);

+               L.marker([64, 64]).addTo(map);
+
                map.on('mousemove', function(e) {
                        coordControl.update(Math.round(e.latlng.lng), Math.round(-e.latlng.lat));
                });

Note that the vertical axis is inverted, so this will add a marker at X=64,Z=-64.

Thank, your software is great

This depends on what you want to do with the marker, but for a simple static marker, the following works:
--- a/viewer/MinedMap.js
+++ b/viewer/MinedMap.js
@@ -193,6 +193,8 @@ window.createMap = function () {
                var coordControl = new CoordControl();
                coordControl.addTo(map);

+               L.marker([64, 64]).addTo(map);
+
                map.on('mousemove', function(e) {
                        coordControl.update(Math.round(e.latlng.lng), Math.round(-e.latlng.lat));
                });

Note that the vertical axis is inverted, so this will add a marker at X=64,Z=-64.

How does one add more complicated Markers? Names, custom icons, etc.


Binding promises

What problem does this feature solve?
I have an array of IDs and I'd like to show some data that is returned by a promise for each of these IDs.
What does the proposed API look like?
Assume getDataUrl returns a promise. It would be cool if one can simply write:
<img :src="getDataUrl(id)" v-for="id in ids">

See https://github.com/foxbenjaminfox/vue-async-computed/blob/master/README.md


Investigate Oracle failures

I've skipped some Oracle tests that were failing:

Query

AsyncSimpleQueryOracleTest

Single_Predicate_Cancellation--A task was canceled.

QueryLoggingOracleTest

Queryable_with_parameter_outputs_parameter_value_logging_warning--Not found: Sensitive data logging is enabled.

SimpleQueryOracleTest

Select_bool_closure_with_order_by_property_with_cast_to_nullable--ORA-00923: FROM keyword not found where expected
Select_bool_closure_with_order_parameter_with_cast_to_nullable--ORA-00923: FROM keyword not found where expected

UpdatesOracleTest

Remove_on_bytes_concurrency_token_original_value_matches_does_not_throw--ORA-00932: inconsistent datatypes: expected - got BLOB
Remove_on_bytes_concurrency_token_original_value_mismatch_throws--ORA-00932: inconsistent datatypes: expected - got BLOB
Update_on_bytes_concurrency_token_original_value_matches_does_not_throw--ORA-00932: inconsistent datatypes: expected - got BLOB
Update_on_bytes_concurrency_token_original_value_mismatch_throws--ORA-00932: inconsistent datatypes: expected - got BLOB

The CI is back up and running.


Error "can't set val" while parsing circuit

Hi there,
I have the following code.
type verifycode struct {
cx frontend.Variable gnark:"cx"
Y frontend.Variable gnark:",public"
}
func (circuit *verifycode) Define(api frontend.API) error {
x3 := api.Mul(circuit.cx, circuit.cx, circuit.cx)
api.AssertIsEqual(circuit.Y, api.Add(x3, circuit.cx))
return nil
}
var circuit verifycode
ccs, _ := frontend.Compile(ecc.BN254.ScalarField(), r1cs.NewBuilder, &circuit)
pk, vk, _ := groth16.Setup(ccs)
assignment := verifycode{cx: 2, Y: 10}
witness, _ := frontend.NewWitness(&assignment, ecc.BN254.ScalarField())
publicWitness, _ := witness.Public()
proof, _ := groth16.Prove(ccs, pk, witness)
fmt.Println(groth16.Verify(proof, vk, publicWitness))
At the ccs, _ := frontend.Compile line, the code gets compiled but with the following error.
22:26:51 INF compiling circuit
22:26:51 INF parsed circuit inputs nbPublic=1 nbSecret=1
22:26:51 ERR parsing circuit error="can't set val cx"
Compilation done
panic: unrecognized R1CS curve type
goroutine 1 [running]:
github.com/consensys/gnark/backend/groth16.Setup({0x0?, 0x0?})
/Users/chhaviyadav/go/pkg/mod/github.com/consensys/gnark@v0.8.0/backend/groth16/groth16.go:286 +0x4a5
How should I deal with this error?

hi!
--> cx must be exposed in your struct, Cx 👍

worked thanks!


Error when retrieving logs with next_logs

db2 -x "CALL LOGADMIN.next_LOGS()"
SQL0007N  The character "!" following "DATE > CAST('    #'0" is not valid.
SQLSTATE=42601

After having changed the table, to use timestamp, no more errors appear.


Allow reanimated 2 as peer dependency

According to their migration guide the code does not have to be changed
https://docs.swmansion.com/react-native-reanimated/docs/migration/

@danielwinkler Unfortunately, it's not so easy. The version 2 has broken backward compatibility with RN below version 0.62. I tried to support reanimated 2 in this request https://github.com/computerjazz/react-native-draggable-flatlist/issues/247

thanks for this, closing in favor of #270


Antidote requires modern awk version

At some point my setup stopped working on an old Mac running Catalina (which is indeed out of support). When starting, Antidote would fail to generate the zsh_plugins.zsh file, which would end up blank, and I would just get this error message:
/dev/fd/12:1: no matches found: --#

I narrowed it down to the awk code. Catalina ships with an ancient version of awk:
❯ /usr/bin/awk --version
awk version 20070501

I don't really know enough awk or what the internals of antidote are doing here exactly, but I believe the offending line is L34 here:
https://github.com/mattmc3/antidote/blob/d6b595275914c425df4a0f85bd1a9399a101ea63/functions/__antidote_parse_bundles#L29-L38
Installing a recent version of awk from Homebrew did fix the problem, so you can feel free to close this if you don't want to investigate further. Thanks for a great project!

Thanks for reporting the issue! I'm willing to support older systems if I have a way I can rely on my GitHub Actions setup to test against those old systems. I don't think there's a way to do that with Catalina currently, but I can keep this open for now and see if there's a way to install an older awk to test with. Conversely, I could rely less on awk for the parser, but Zsh without PCRE is pretty common so I was aiming for something that I could count on on a modern install.

Yeah, Catalina isn't supported on GitHub Actions. If you really wanted to take a look...
You can download the version of Awk used in Catalina (from here) and compile it like this:
curl -L -O https://github.com/apple-oss-distributions/awk/archive/awk-24.140.1.tar.gz
tar -xzf awk-24.140.1.tar.gz
cd awk-awk-24.140.1

xcodebuild -project awk.xcodeproj -scheme awk -archivePath ./awk.xcarchive archive

cp awk.xcarchive/Products/usr/bin/awk /usr/local/bin/awk

This does work and repro the bug on Ventura (you have to delete zsh_plugins.zsh first).

I just cut a new release, v1.9.3. In it, if you have GNU awk (gawk) installed on macOS, antidote will use it instead of an old outdated system awk. I still test and support awk on all modern macOS installs, but this will allow you to still use antidote on an old MacOS with an outdated awk just by running brew install gawk.


Do not start TestServer directly from constructor

For a test project I need to do some scaffolding after the WebHost has been build but before the server runs.
For a WebApi project, I use the following code:

I need to do the same for the associated test project. But the code in the constuctor of Microsoft.AspNetCore.TestHost.TestServer is preventing this.
Can the line that starts the server be moved to a Run method just like IWebHost?

Not without breaking existing users. Maybe a new constructor overload could be added with a bool parameter so you could skip Start.
What do you need from the host for DatabaseManagement?

I use the host to retrieve all service instances of DbContext to migrate or drop the database

var serviceScopeFactory = _host.Services.GetService();
var scope = serviceScopeFactory.CreateScope()
var contexts = scope.ServiceProvider.GetServices(typeof(DbContext));

Makes sense. We'd have to at least add an overload.

Tentatively putting this in 3.x.


use pip3 to install gigalixir CLI

Python 2 reached EOL at January 1st 2020, should hopefully fix #21 but I don't know Github Actions well enough to test it :D

I tried the change and the error persists.
@vlindhol You can try the changes you do in your branch by using it in a workflow like this:
- uses: vlindhol/gigalixir-action@use-python3

instead of the usual<EMAIL_ADDRESS>This way you can try your changes and if it works, you can create a PR.

Hey all, this also did not work for me, but de-sudoing the call to pip did. See PR #23 , let me know if there's anything else I can help with.

Fixed in #23, thanks for the effort! I appreciate it.


Interact with shader.

Those things might need shader support:

sprite text.
karaoke text.

also notice that should be able to support multi shader eventually.

Also note that those two classes only support list, not list

Implemented in #41


Mismatched schedulers?

Sampler heun, dpm++ and dpm produce totally the same image with same seed.

Since dpm++ and heun differ from algorithm type, they should produce similar images instead of totally the same one.
It seems something went wrong in SCHEDULERS from lib.diffusers.scheduler.

fixed in #87


ipcRenderer update

The ipc does not work properly since the update of electron.
We need to use the require('electron').ipcRenderer.
If you can do an update for this, coul'd be great.
Thanks.

I just released a new version.
It should support electron 0.35.0 way of requiring it's modules.


Host file editor multiple hosts tooltip German translation

Microsoft PowerToys version
0.69.1
Utility with translation issue
Hosts File Editor
🌐 Language affected
German
❌ Actual phrase(s)
Mehrere Hosts nach Speicherplatz trennen (z. B. server server.local).

✔ Expected phrase(s)
Mehrere Hosts durch Leerzeichen trennen (z. B. server server.local).
ℹ Why is the current translation wrong
In the "Seperate multiple hosts by space" tooltip, "space" has been translated as "disk space" instead of "space key".
The English version should also probably be "separate".

https://microsoft.visualstudio.com/OS/_workitems/edit/44326150

/loc

This should be fixed in a newer build such as .70.1, can you please verify? /needinfo

Fixed in v0.70.1


Updating validations.py python script

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Closes:#1
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[x] Tests pass
[x] Appropriate changes to README are included in PR

@googlebot I fixed it

@googlebot I signed it!


Cannot write dataframe to parquet in S3 bucket

When trying to write a Dask dataframe to S3 using to_parquet, s3fs tries to create the bucket even though it exists. Reading from the bucket does work.
The issue occurs on s3fs 0.5.0, but not on 0.4.2.
Minimal Complete Verifiable Example:
>>> import dask.dataframe as dd
>>> df = dd.read_parquet('s3://my-bucket/input/')
>>> df
Dask DataFrame Structure:
...
Dask Name: read-parquet, 1 tasks

>>> df.to_parquet('s3://my-bucket/output/')
Traceback (most recent call last):
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/s3fs/core.py", line 446, in _mkdir
    await self.s3.create_bucket(**params)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/aiobotocore/client.py", line 134, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/dask/dataframe/core.py", line 3950, in to_parquet
    return to_parquet(self, path, *args, **kwargs)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/dask/dataframe/io/parquet/core.py", line 473, in to_parquet
    **kwargs_pass,
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/dask/dataframe/io/parquet/arrow.py", line 879, in initialize_write
    fs.mkdirs(path, exist_ok=True)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/fsspec/spec.py", line 1018, in mkdirs
    return self.makedirs(path, exist_ok=exist_ok)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/s3fs/core.py", line 460, in makedirs
    self.mkdir(path, create_parents=True)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/fsspec/asyn.py", line 100, in wrapper
    return maybe_sync(func, self, *args, **kwargs)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/fsspec/asyn.py", line 80, in maybe_sync
    return sync(loop, func, *args, **kwargs)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/fsspec/asyn.py", line 51, in sync
    raise exc.with_traceback(tb)
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/fsspec/asyn.py", line 35, in f
    result[0] = await future
  File "/Users/matteo/.local/share/virtualenvs/gorilla-engine-kOUz7rMz/lib/python3.7/site-packages/s3fs/core.py", line 450, in _mkdir
    raise translate_boto_error(e) from e
PermissionError: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.

I seem to be perfectly able to call mkdir when the bucket already exists, so I can only suggest that you default region doesn't match the region that the bucket has (parameter region_name in client_kwargs).
So there are two things here:

we can check for the existence of the bucket, and don't try to create if not necessary
we can allow mkdir to fail
(note that AWS permissioning is complex, so it's possible that you have the ability to create buckets, but not list a particular bucket, so the only way to know that it exists is to try to create it and fail).

Stepping through this in a debugger, I noticed that _mkdir on 0.5.0 was different from master. It looks like this may have been fixed in #347.

I'll wait for the next release! Sorry for the confusion.


[Documentation] IMAGE_ID in example should be a sample digest number

docker run -v ~/ortelius/data:/var/lib/pgsql/data:Z -p 7171:8080 -d --hostname docker_dh -v ~/.ssh:/keys:Z IMAGE_ID
IMAGE_ID should be replaced with a digest such as 43ca234

Fixed


chore(main): release 2.110.2

:robot: I have created a release beep boop
2.110.2 (2024-04-25)
Bug Fixes

saas: fix account number in secrets references (#3842) (0f6d333)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/Flagsmith/flagsmith/releases/tag/v2.110.2 :sunflower:


Enable publishing to NPM and fix compilation location

This adds some changes to enable/improve NPM publishing.
Compilation output was being placed in dist/src, I've moved it to dist.
I've also changed the package.json index and types references so that consuming projects can re-use types by importing the package, rather than a path in the package.
Lastly I based the version off the existing version history, which was 0.0.1, 0.0.4, etc.
:)

Also, make sure to try building and running the Docker container because I'm a bit worried this will break it.

Thanks for the comments all, I will double-check build and deployment before merging.

As per Slack, if I deploy using the latest main I get an error message:
Error:
CREATE_FAILED: IamRoleLambdaExecution (AWS::IAM::Role)
The policy failed legacy parsing (Service: AmazonIdentityManagement; Status Code: 400; Error Code: MalformedPolicyDocument; Request ID: x; Proxy: null)

If I set Resource in serverless.yml to '*' it deploys and the deployment runs correctly.

The psp-beacon-update function works, I'm waiting to see if process-subscriptions also works. I'll merge this when I have confirmation.
Separately it looks like I found some bugs along the way. I haven't addressed them here. I'll create a task for that.

It's working nicely, so I'll merge.


Publish the repository as a nuget package

Hi,
I just wondering if it is possible to publish this repository as a nuget package?
I believe that will make this repo much more easier to use.

Hello @duongntbk
I think to publish as nuget package in "nuget.org",  some team needs to own this repo and take care of publishing this repo when there is changes to "nuget.org" via "mdsol credentials" similar to how we publish "mauth-client-dotnet" public repo into "nuget.org"
cc: @jfeltesse-mdsol @hkurniawan-mdsol @bflanaghan-mdsol

Currently asking infosec for the nuget credentials.
We'll keep you posted.

@duongntbk
As you mentioned it here, https://github.com/mdsol/FastAndFaster/pull/6#event-7664737429, it's best that if you fork this repo and take full control of it.
Sorry we couldn't give you a better solution.
All the best on your OSS adventure.
We will be archiving this repo in the coming days.


Deleting an old node group is attempting to overwrite a newly created node group

Description
Originally i had a node group called ops-node with instance of type m5.xlarge. I have created a new node group called op-node with instance of type m5.2xlarge and migrated the apps from the original node group over to this new one because they required more resources.
Now i want to clean up the original/old node group ops-node. When i attempt to delete the old node group configuration (removing the entry {} in the [], it also wants to delete the newly created node group.
Versions

Module version [Required]: 15.1.0

Terraform version:
Terraform v1.0.6

Provider version(s):

+ provider registry.terraform.io/hashicorp/aws v3.51.0
+ provider registry.terraform.io/hashicorp/cloudinit v2.2.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.3.2
+ provider registry.terraform.io/hashicorp/local v2.0.0
+ provider registry.terraform.io/hashicorp/null v3.0.0
+ provider registry.terraform.io/hashicorp/random v3.0.0
+ provider registry.terraform.io/hashicorp/template v2.2.0
+ provider registry.terraform.io/terraform-aws-modules/http v2.4.1

Reproduction Code [Required]
initially
worker_groups = [
    {
      name                          = "worker-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      additional_userdata           = ""
      asg_min_size                  = 2
      asg_desired_capacity          = 2
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=worker"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
    {
      name                          = "cron-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      additional_userdata           = ""
      asg_min_size                  = 1
      asg_desired_capacity          = 1
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=cron"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
    {
      name                          = "ops-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      subnets                       = ["subnet-0a6500f985213bd36", "subnet-09c52093f9e755207"]
      additional_userdata           = ""
      asg_min_size                  = 0
      asg_desired_capacity          = 0
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=ops"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
  ]

after
worker_groups = [
    {
      name                          = "worker-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      additional_userdata           = ""
      asg_min_size                  = 2
      asg_desired_capacity          = 2
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=worker"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
    {
      name                          = "cron-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      additional_userdata           = ""
      asg_min_size                  = 1
      asg_desired_capacity          = 1
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=cron"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
    {
      name                          = "ops-nodes"
      instance_type                 = "m5.xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      subnets                       = ["subnet-0a6500f985213bd36", "subnet-09c52093f9e755207"]
      additional_userdata           = ""
      asg_min_size                  = 0
      asg_desired_capacity          = 0
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=ops"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
    },
    {
      name                          = "op-nodes"
      instance_type                 = "m5.2xlarge"
      ami_id                        = "ami-0ad418be69ef09deb"
      subnets                       = ["subnet-0a6500f985213bd36", "subnet-09c52093f9e755207"]
      additional_userdata           = ""
      asg_min_size                  = 2
      asg_desired_capacity          = 2
      asg_max_size                  = 5
      additional_security_group_ids = [data.terraform_remote_state.networking.outputs.eks_worker_nodes_sg_id]
      kubelet_extra_args            = "--node-labels=geeiq/node-type=ops"
      public_ip                     = true
      key_name                      = data.terraform_remote_state.networking.outputs.geeiq_key_pair_key_name
      tags                          = local.worker_group_tags
      root_volume_size              = 250
    },

  ]

Steps to reproduce the behavior:

Create a new node group called op-node with almost same configuration except different size instance type and root volume size.
Delete the first node group {} called ops-node from the terrafom config and then do terraform plan/apply.

Expected behavior
I expect just the first node group ops-node to be deleted.
Actual behavior
Its attempting to delete the first one and recreate the newly created one.
 Resource actions are indicated with the following symbols:
  - destroy
+/- create replacement and then destroy

Terraform will perform the following actions:

  # module.eks.aws_autoscaling_group.workers[2] must be replaced
+/- resource "aws_autoscaling_group" "workers" {
      ~ arn                       = "arn:aws:autoscaling:us-east-2:700849607999:autoScalingGroup:a2f02edf-2494-4e3a-ae6f-b79ac503e27e:autoScalingGroupName/geeiq-prod-k8s-ops-nodes20210422145135744400000006" -> (known after apply)
      ~ availability_zones        = [
          - "us-east-2a",
        ] -> (known after apply)
      - capacity_rebalance        = false -> null
      ~ default_cooldown          = 300 -> (known after apply)
      - enabled_metrics           = [] -> null
      ~ health_check_type         = "EC2" -> (known after apply)
      ~ id                        = "geeiq-prod-k8s-ops-nodes20210422145135744400000006" -> (known after apply)
      ~ launch_configuration      = "geeiq-prod-k8s-ops-nodes20220409085841756100000003" -> (known after apply)
      - load_balancers            = [] -> null
      ~ name                      = "geeiq-prod-k8s-ops-nodes20210422145135744400000006" -> (known after apply)
      ~ name_prefix               = "geeiq-prod-k8s-ops-nodes" -> "geeiq-prod-k8s-op-nodes" # forces replacement
      ~ service_linked_role_arn   = "arn:aws:iam::700849607999:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" -> (known after apply)
      - target_group_arns         = [] -> null
        # (13 unchanged attributes hidden)

      + tag {
          + key                 = "Name"
          + propagate_at_launch = true
          + value               = "geeiq-prod-k8s-op-nodes-eks_asg"
        }
      - tag {
          - key                 = "Name" -> null
          - propagate_at_launch = true -> null
          - value               = "geeiq-prod-k8s-ops-nodes-eks_asg" -> null
        }
        # (8 unchanged blocks hidden)
    }

  # module.eks.aws_autoscaling_group.workers[3] will be destroyed
  - resource "aws_autoscaling_group" "workers" {
      - arn                       = "arn:aws:autoscaling:us-east-2:700849607999:autoScalingGroup:030d9214-2f4b-4c58-9367-1a59de288e3b:autoScalingGroupName/geeiq-prod-k8s-op-nodes20220409095313235600000003" -> null
      - availability_zones        = [
          - "us-east-2a",
        ] -> null
      - capacity_rebalance        = false -> null
      - default_cooldown          = 300 -> null
      - desired_capacity          = 2 -> null
      - enabled_metrics           = [] -> null
      - force_delete              = false -> null
      - force_delete_warm_pool    = false -> null
      - health_check_grace_period = 300 -> null
      - health_check_type         = "EC2" -> null
      - id                        = "geeiq-prod-k8s-op-nodes20220409095313235600000003" -> null
      - launch_configuration      = "geeiq-prod-k8s-op-nodes20220409095305101600000002" -> null
      - load_balancers            = [] -> null
      - max_instance_lifetime     = 0 -> null
      - max_size                  = 5 -> null
      - metrics_granularity       = "1Minute" -> null
      - min_size                  = 2 -> null
      - name                      = "geeiq-prod-k8s-op-nodes20220409095313235600000003" -> null
      - name_prefix               = "geeiq-prod-k8s-op-nodes" -> null
      - protect_from_scale_in     = false -> null
      - service_linked_role_arn   = "arn:aws:iam::700849607999:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" -> null
      - suspended_processes       = [
          - "AZRebalance",
        ] -> null
      - target_group_arns         = [] -> null
      - termination_policies      = [] -> null
      - vpc_zone_identifier       = [
          - "subnet-09c52093f9e755207",
          - "subnet-0a6500f985213bd36",
        ] -> null
      - wait_for_capacity_timeout = "10m" -> null

      - tag {
          - key                 = "Environment" -> null
          - propagate_at_launch = true -> null
          - value               = "prod" -> null
        }
      - tag {
          - key                 = "GithubOrg" -> null
          - propagate_at_launch = true -> null
          - value               = "terraform-aws-modules" -> null
        }
      - tag {
          - key                 = "GithubRepo" -> null
          - propagate_at_launch = true -> null
          - value               = "terraform-aws-eks" -> null
        }
      - tag {
          - key                 = "Name" -> null
          - propagate_at_launch = true -> null
          - value               = "geeiq-prod-k8s-op-nodes-eks_asg" -> null
        }
      - tag {
          - key                 = "Terraform" -> null
          - propagate_at_launch = true -> null
          - value               = "true" -> null
        }
      - tag {
          - key                 = "k8s.io/cluster-autoscaler/enabled" -> null
          - propagate_at_launch = false -> null
          - value               = "true" -> null
        }
      - tag {
          - key                 = "k8s.io/cluster-autoscaler/geeiq-prod-k8s" -> null
          - propagate_at_launch = false -> null
          - value               = "true" -> null
        }
      - tag {
          - key                 = "k8s.io/cluster/geeiq-prod-k8s" -> null
          - propagate_at_launch = true -> null
          - value               = "owned" -> null
        }
      - tag {
          - key                 = "kubernetes.io/cluster/geeiq-prod-k8s" -> null
          - propagate_at_launch = true -> null
          - value               = "owned" -> null
        }
    }

  # module.eks.aws_iam_instance_profile.workers[3] will be destroyed
  - resource "aws_iam_instance_profile" "workers" {
      - arn         = "arn:aws:iam::700849607999:instance-profile/geeiq-prod-k8s20220409095303658700000001" -> null
      - create_date = "2022-04-09T09:53:04Z" -> null
      - id          = "geeiq-prod-k8s20220409095303658700000001" -> null
      - name        = "geeiq-prod-k8s20220409095303658700000001" -> null
      - name_prefix = "geeiq-prod-k8s" -> null
      - path        = "/" -> null
      - role        = "geeiq-prod-k8s20210422140902992300000009" -> null
      - tags        = {} -> null
      - tags_all    = {} -> null
      - unique_id   = "AIPA2GLPEKU7UFU7KHTG5" -> null
    }

  # module.eks.aws_launch_configuration.workers[2] must be replaced
+/- resource "aws_launch_configuration" "workers" {
      ~ arn                              = "arn:aws:autoscaling:us-east-2:700849607999:launchConfiguration:72db05bc-0da6-4d23-bfe8-adc4cfc396c6:launchConfigurationName/geeiq-prod-k8s-ops-nodes20220409085841756100000003" -> (known after apply)
      ~ id                               = "geeiq-prod-k8s-ops-nodes20220409085841756100000003" -> (known after apply)
      ~ instance_type                    = "m5.xlarge" -> "m5.2xlarge" # forces replacement
      ~ name                             = "geeiq-prod-k8s-ops-nodes20220409085841756100000003" -> (known after apply)
      ~ name_prefix                      = "geeiq-prod-k8s-ops-nodes" -> "geeiq-prod-k8s-op-nodes" # forces replacement
      - vpc_classic_link_security_groups = [] -> null
        # (8 unchanged attributes hidden)

      + ebs_block_device {
          + delete_on_termination = (known after apply)
          + device_name           = (known after apply)
          + encrypted             = (known after apply)
          + iops                  = (known after apply)
          + no_device             = (known after apply)
          + snapshot_id           = (known after apply)
          + throughput            = (known after apply)
          + volume_size           = (known after apply)
          + volume_type           = (known after apply)
        }

      + metadata_options {
          + http_endpoint               = (known after apply)
          + http_put_response_hop_limit = (known after apply)
          + http_tokens                 = (known after apply)
        }

      ~ root_block_device {
          ~ throughput            = 0 -> (known after apply)
          ~ volume_size           = 100 -> 250 # forces replacement
            # (4 unchanged attributes hidden)
        }
    }

  # module.eks.aws_launch_configuration.workers[3] will be destroyed
  - resource "aws_launch_configuration" "workers" {
      - arn                              = "arn:aws:autoscaling:us-east-2:700849607999:launchConfiguration:b1013d4b-a616-4d13-9aab-af83abcf89df:launchConfigurationName/geeiq-prod-k8s-op-nodes20220409095305101600000002" -> null
      - associate_public_ip_address      = true -> null
      - ebs_optimized                    = true -> null
      - enable_monitoring                = true -> null
      - iam_instance_profile             = "geeiq-prod-k8s20220409095303658700000001" -> null
      - id                               = "geeiq-prod-k8s-op-nodes20220409095305101600000002" -> null
      - image_id                         = "ami-0ad418be69ef09deb" -> null
      - instance_type                    = "m5.2xlarge" -> null
      - key_name                         = "geeiq-prod-key" -> null
      - name                             = "geeiq-prod-k8s-op-nodes20220409095305101600000002" -> null
      - name_prefix                      = "geeiq-prod-k8s-op-nodes" -> null
      - security_groups                  = [
          - "sg-0efffe6c4e9cef238",
          - "sg-0f8e379b67348c6fe",
        ] -> null
      - user_data_base64                 = "IyEvYmluL2Jhc2ggLWUKCiMgQWxsb3cgdXNlciBzdXBwbGllZCBwcmUgdXNlcmRhdGEgY29kZQoKCiMgQm9vdHN0cmFwIGFuZCBqb2luIHRoZSBjbHVzdGVyCi9ldGMvZWtzL2Jvb3RzdHJhcC5zaCAtLWI2NC1jbHVzdGVyLWNhICdMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VNMWVrTkRRV01yWjBGM1NVSkJaMGxDUVVSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFRldUVkpOZDBWUldVUldVVkZFUlhkd2NtUlhTbXdLWTIwMWJHUkhWbnBOUWpSWVJGUkplRTFFVVhsTmFrVXdUVVJSTVU1R2IxaEVWRTE0VFVSUmVVMUVSVEJOUkZFeFRrWnZkMFpVUlZSTlFrVkhRVEZWUlFwQmVFMUxZVE5XYVZwWVNuVmFXRkpzWTNwRFEwRlRTWGRFVVZsS1MyOWFTV2gyWTA1QlVVVkNRbEZCUkdkblJWQkJSRU5EUVZGdlEyZG5SVUpCVDJkekNtdFVjMkpwYlUwMFQyMVFNa2xFV1ZaUFEyOWtjVVpSWlZsaVUzZHpiR1l6YldzeWNsbFBXSEJ1Yms1aVoyOHZiMVIzYVc5UmRuUTBTek54VkV0RGRVa0tUbVpPY1hNNFZVcHplVWhvUVZoNVZXTlhSRms1Uld0cU4waERTV2s1YWpSbGJqZGxRekI1WjJWdUwweGhRMVpCZDBGMmQweE9lalJzYjFaRk5HZHNZUXBGTTBveldWZG1WV1Y2Um1sV2VVdG1kMGx3TTFVMU9WUXdaRVI2YVVNM2QwbzJVelI0WWtsNU1XVjVXbGc0SzFWMmJEWnBVMDVGY2pCdWNIQldlWEJzQ2tkUmF6QlpjRm8wSzJnd2NYRnBkVk5VWVRsaWFFZ3JVazVuV2pCTGRsUmhNV0ZITTFWT1ZYWlhTMVZXYUd0TWRFcGtkM2hXUVRWaEt5dG1aRWQ1ZWxFS1EzUTVjbTVEYVRSR09HWmlZVEoyWXpoSVRXOVhNRmxIVUhkR2JUUlJSMkZ4Vkhkak15czNTR1JxVUhGb2NFUk1ZblZ5TmtzM1Z6Z3hSblpMVFVOclF3b3pTM2RQVTI1UVdrUmhOR2Q1U2pSd1JITkZRMEYzUlVGQllVNURUVVZCZDBSbldVUldVakJRUVZGSUwwSkJVVVJCWjB0clRVRTRSMEV4VldSRmQwVkNDaTkzVVVaTlFVMUNRV1k0ZDBoUldVUldVakJQUWtKWlJVWkdSa1ZUVm5WQlZHWXJla2x4VVRkVldVZE9hamx6WTJrck9IaE5RVEJIUTFOeFIxTkpZak1LUkZGRlFrTjNWVUZCTkVsQ1FWRkNNamxRVm1sdFduVnNjRlV2WjJod2QzVnBjVGhWYlU5VWRWaG9TR1pQY3pJd1NXRTRRbmdyU0hKRmJUQkxWamhNTHdwWVVrWjFZMjk0VjBRdk5rdHBaRkZaYTBKV1ltdFhiMEZwYjNOV2FFOUlNa042ZUVsR05scEdNelI2Y0hCMldITldlRFZyVldKVlYyVnNjRFpxTkM4M0NpdG5Ra1U1UjFsRlJHdHdRVE5hTmpaSVVVMTBVVkZhZFVkWVRuaG5NazlzUTFWdmNDOVlRWHB1YzA5dVVWcGpiWFp5VkdvMlprdHBOa3BTVjAxNmVHMEtRV0p6SzJndlNVOWxWMGhwZWsxeVpYTnhWRWMxUmxCNVdXOTFSbkpCYzBodGR6aFlSSFZITXpOMFpqRkNZMW9yVEZkWk9XUnpkeXRETmxodk5VMXdWQW94ZWpCaWRXazFhbXhxTUdneFpGZFdORXRzVUhWMFpqRlBMMjlZY1d4dU0zRTVhVm8wVUhsaU1GVlJTMFU1SzBrMlNURmhSVU13WmpORlVtaG1kVkF5Q25Jd1UxQXhOMFY1ZUZrcmVHTm9NMjAxUWpOcFdtMTVWMHRHVlZoalUxZHlWbWMxVEFvdExTMHRMVVZPUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PScgLS1hcGlzZXJ2ZXItZW5kcG9pbnQgJ2h0dHBzOi8vMDIxRTgxRjMxODFGOTBCOUUwODA0NzQwMkI1M0Y2QzQuZ3I3LnVzLWVhc3QtMi5la3MuYW1hem9uYXdzLmNvbScgIC0ta3ViZWxldC1leHRyYS1hcmdzICItLW5vZGUtbGFiZWxzPWdlZWlxL25vZGUtdHlwZT1vcHMiICdnZWVpcS1wcm9kLWs4cycKCiMgQWxsb3cgdXNlciBzdXBwbGllZCB1c2VyZGF0YSBjb2RlCgo=" -> null
      - vpc_classic_link_security_groups = [] -> null

      - root_block_device {
          - delete_on_termination = true -> null
          - encrypted             = false -> null
          - iops                  = 0 -> null
          - throughput            = 0 -> null
          - volume_size           = 250 -> null
          - volume_type           = "gp2" -> null
        }
    }

  # module.eks.random_pet.workers[2] must be replaced
+/- resource "random_pet" "workers" {
      ~ id        = "proud-worm" -> (known after apply)
      ~ keepers   = {
          - "lc_name" = "geeiq-prod-k8s-ops-nodes20220409085841756100000003"
        } -> (known after apply) # forces replacement
        # (2 unchanged attributes hidden)
    }

  # module.eks.random_pet.workers[3] will be destroyed
  - resource "random_pet" "workers" {
      - id        = "vocal-monitor" -> null
      - keepers   = {
          - "lc_name" = "geeiq-prod-k8s-op-nodes20220409095305101600000002"
        } -> null
      - length    = 2 -> null
      - separator = "-" -> null
    }

Plan: 3 to add, 0 to change, 7 to destroy.

Additional context
New node group i want to keep : geeiq-prod-k8s-op-nodes20220409095313235600000003
Old node group i want to delete : geeiq-prod-k8s-ops-nodes20210422145135744400000006

I'm aware this is an old version of this module but unfortunately we don't have the time or resources right now to make the upgrade to the latest version.
From what i can understand it thinks the new op-node is an upgrade of original ops-node rather than a completely new node group. Is anyone able to offer advise on what i can do to separate them. ( i assumed a different name would have been enough )
module.eks.aws_launch_configuration.workers[0]: Refreshing state... [id=geeiq-prod-k8s-worker-nodes20220409085841756000000002]
module.eks.aws_launch_configuration.workers[2]: Refreshing state... [id=geeiq-prod-k8s-ops-nodes20220409085841756100000003]
module.eks.aws_launch_configuration.workers[1]: Refreshing state... [id=geeiq-prod-k8s-cron-nodes20220409085841755200000001]
module.eks.aws_launch_configuration.workers[3]: Refreshing state... [id=geeiq-prod-k8s-op-nodes20220409095305101600000002]

yes, unfortunately this is one of the drawbacks of the versions prior to v18.x - the solution would be to upgrade to v18.x to avoid this disruptive behavior

@bryantbiggs ye i thought that might be the case.... hmm i can't upgrade now unfortunately.
I want to clean this up, do you think it would be enough to just delete the autoscaling group manually in the aws dashboard and also the corresponding terraform state.
geeiq-prod-k8s-ops-nodes20210422145135744400000006
--

terraform state rm module.eks.aws_autoscaling_group.workers[2]

you could try - in the end you need the order in state to match the order of your code (array index order that is) otherwise all node groups after the affected node group index are at risk of re-creation

hmm ok

honestly,  if you're going through all this I would just upgrade and be done with this problem.

Upgrade per upgrade guide
Set control plane settings to v17.x syntax to avoid replacement
Remove node groups from Terraform state management (still exist, just not controlled by Terraform)
Provision new node groups based on existing settings
Cordon and drain old node groups
Once last pods are moved off old node groups, manually delete

As far as i remember, trying to upgrade from 15 -> 18 caused terraform changes that would attempt to recreate the eks cluster it self, so i stopped attempting that and just worked with what i have

I don't know about coming from v15, but for most coming from v17 the following worked:
prefix_separator                   = ""
iam_role_name                      = $CLUSTER_NAME
cluster_security_group_name        = $CLUSTER_NAME
cluster_security_group_description = "EKS cluster security group."

Ref: https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1744#issuecomment-1027359982

I don't know about coming from v15, but for most coming from v17 the following worked to avoid replacing the control plane:
prefix_separator                   = ""
iam_role_name                      = $CLUSTER_NAME
cluster_security_group_name        = $CLUSTER_NAME
cluster_security_group_description = "EKS cluster security group."

Ref: #1744 (comment)

Yeah i am aware of that thread, i attempted that on a test environment and for me it was still attempting to recreate the eks cluster itself. You can see i even made some comments on that thread and got stuck
https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1744#issuecomment-1039238839

@bryantbiggs
Does this problem ( in this issue) occur also in version 17? I might attempt a 15 -> 17 upgrade

yes, there were a number of issues related to this in v17.x that we fixed in v18.x such as https://github.com/terraform-aws-modules/terraform-aws-eks/issues/1105

Okay~ i think the best option here is just to eventually recreate the eks cluster at some point and migrate my apps across.
As the main problem with following the upgrade guides and that main thread is the terraform state names which people suggest to manipulate does not correspond with what i have in my state file


fix: Fix hang when seeking to the last segment

Problem
The player does not operate normally when the last segment seek in the hls. (Chrome)
The fetchAndAppend_ function does not appear to be running on the last segment.
https://user-images.githubusercontent.com/25482071/193399014-6fced3ee-5bd3-4c7e-87da-f4e010d794c0.mp4

Click test link.
https://shaka-player-demo.appspot.com/demo/#audiolang=en-US;textlang=en-US;uilang=en-US;asset=https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-ts/master.m3u8;panel=ALL_CONTENT;panelData=HLS,MP2TS;build=compiled
Seek last segment.

Thank you so much for contributing!  This looks great.


proposal: gen the DB

THis is a really great project. I have been working on something similar, but i think i will swap to yours.
I was wondering if you think using sqlboiler ( github.com/volatiletech/sqlboiler ) to gen the DB makes sense ?
I noticed that you gen the Standard CRUD Methods and so it seems a pretty good idea to then do the same for the DB.
There is always a imbalance, for want of a better word, between what your DB model looks like and what your GRPC model looks like. Hope you know what i mean ?
SO for now, if you think this is a good idea, then the developer has to write code in the middle to get the data from the DB that he / she needs to fulfil the Protobuf API.
In the past i wrote a very large code generator that is quite a bit like this.
In order to help with the "imbalance" we created a mapping between the protobuf and the db tables, to help do more codegen. But i think thats much later..
anyways, eager to hear what your think.

something similar to https://github.com/infobloxopen/protoc-gen-gorm but for sqlboiler instead of gorm?

It would be nice for a grapi db plugin. This shouldn't be added in the grapi core to avoid bloats.

@fi0 yes exactly.  github.com/volatiletech/sqlboiler is much faster since it does not use reflection.
The benchmarks show a 5 to 10 times speed up
https://github.com/volatiletech/sqlboiler#benchmarks
@l4u makes sense. SQL boiler is a db schema first generator. I think we can gen the schema from the protobufs but not sure right now. any ideas ?


Updated download_urls used to be the new releases.hashicorp.com location

@aj-jester and @solarkennedy If we can get this merged in I'm also going to attempt to commit some changes that allow for the upgrading via URL to follow the similar approach that consul-template uses which seems to work decently well.

:bullettrain_side: LGTM

@split3 of course don't forget you are a collaborator, so feel free to merge if something is blocking you. These kind of changes are pretty much always a shipit.

@solarkennedy yea I know, but its been a while so wanted to make sure to get another :+1: from other collaborators.