statamic-rad-pack / mailchimp

Mailchimp integration for Statamic
https://statamic.com/addons/rad-pack/mailchimp
MIT License
18 stars 12 forks source link

Forma flattens config file #87

Closed robdekort closed 1 year ago

robdekort commented 1 year ago

I'm not sure how to trigger it but by adding a second form to my config and saving that I get an error upon reload. You know how to reach me if you need more info. Happy to help!

Screenshot 2023-02-01 at 13 36 48
edalzell commented 1 year ago

I added a second from via the CP and it worked fine, how did you add the second form @robdekort?

robdekort commented 1 year ago

Odd! I had done it all from the CP. I trashed all forms and tried again and now everything works. It might've had something to do with the grid field somehow being in this state:

Screenshot 2023-02-02 at 10 25 23

Now I tried again and everything works it looks like this:

Screenshot 2023-02-02 at 10 25 47
robdekort commented 1 year ago

Hang on. I just saved the two new fresh forms, refresh and get the same error. I'll DM you the config!

edalzell commented 1 year ago

Hey @robdekort I can't replicate this even with your mailchimp api key.

Can you please send me the output of composer show?

robdekort commented 1 year ago
ajthinking/archetype               v1.1.5          Programmatically edit PH...
asm89/stack-cors                   v2.1.1          Cross-origin resource sh...
barryvdh/laravel-debugbar          v3.7.0          PHP Debugbar integration...
brick/math                         0.11.0          Arbitrary-precision arit...
composer/ca-bundle                 1.3.5           Lets you find a path to ...
composer/class-map-generator       1.0.0           Utilities to scan PHP co...
composer/composer                  2.5.1           Composer helps you decla...
composer/metadata-minifier         1.0.0           Small utility library th...
composer/pcre                      3.1.0           PCRE wrapping library th...
composer/semver                    3.3.2           Semver library that offe...
composer/spdx-licenses             1.5.7           SPDX licenses list and v...
composer/xdebug-handler            3.0.3           Restarts a process witho...
dflydev/dot-access-data            v3.0.2          Given a deep data struct...
doctrine/inflector                 2.0.6           PHP Doctrine Inflector i...
doctrine/instantiator              2.0.0           A small, lightweight uti...
doctrine/lexer                     3.0.0           PHP Doctrine Lexer parse...
dragonmantank/cron-expression      v3.3.2          CRON for PHP: Calculate ...
drewm/mailchimp-api                v2.5.4          Super-simple, minimum ab...
edalzell/forma                     v1.2.1          Give control panel acces...
egulias/email-validator            4.0.1           A library for validating...
facade/ignition-contracts          1.0.2           Solution contracts for I...
fakerphp/faker                     v1.21.0         Faker is a PHP library t...
filp/whoops                        2.14.6          php error handling for c...
fruitcake/laravel-cors             v2.2.0          Adds CORS (Cross-Origin ...
fruitcake/php-cors                 v1.2.0          Cross-origin resource sh...
graham-campbell/result-type        v1.1.0          An Implementation Of The...
guzzlehttp/guzzle                  7.5.0           Guzzle is a PHP HTTP cli...
guzzlehttp/promises                1.5.2           Guzzle promises library
guzzlehttp/psr7                    2.4.3           PSR-7 message implementa...
hamcrest/hamcrest-php              v2.0.1          This is the PHP port of ...
intervention/image                 2.7.2           Image handling and manip...
james-heinrich/getid3              v1.9.22         PHP script that extracts...
jonassiewertsen/statamic-livewire  v2.11.0         A Laravel Livewire integ...
justinrainbow/json-schema          5.2.12          A library to validate a ...
laragraph/utils                    v1.6.0          Utilities for using Grap...
laravel/framework                  v9.50.2         The Laravel Framework.
laravel/helpers                    v1.6.0          Provides backwards compa...
laravel/sail                       v1.19.0         Docker files for running...
laravel/sanctum                    v2.15.1         Laravel Sanctum provides...
laravel/serializable-closure       v1.3.0          Laravel Serializable Clo...
laravel/tinker                     v2.8.0          Powerful REPL for the La...
league/commonmark                  2.3.8           Highly-extensible PHP Ma...
league/config                      v1.2.0          Define configuration arr...
league/csv                         9.8.0           CSV data manipulation ma...
league/flysystem                   3.12.2          File storage abstraction...
league/glide                       2.2.2           Wonderfully easy on-dema...
league/mime-type-detection         1.11.0          Mime-type detection for ...
livewire/livewire                  v2.11.2         A front-end framework fo...
maennchen/zipstream-php            v2.4.0          ZipStream is a library f...
maximebf/debugbar                  v1.18.1         Debug bar in the browser...
michelf/php-smartypants            1.8.1           PHP SmartyPants
mockery/mockery                    1.5.1           Mockery is a simple yet ...
monolog/monolog                    2.8.0           Sends your logs to files...
myclabs/deep-copy                  1.11.0          Create deep copies (clon...
myclabs/php-enum                   1.8.4           PHP Enum implementation
nesbot/carbon                      2.66.0          An API extension for Dat...
nette/schema                       v1.2.3          šŸ“ Nette Schema: valid...
nette/utils                        v4.0.0          šŸ›   Nette Utils: light...
nikic/php-parser                   v4.15.3         A PHP parser written in PHP
nunomaduro/collision               v6.4.0          Cli error handling for c...
nunomaduro/termwind                v1.15.0         Its like Tailwind CSS, b...
phar-io/manifest                   2.0.3           Component for reading ph...
phar-io/version                    3.2.1           Library for handling ver...
phpoption/phpoption                1.9.0           Option Type for PHP
phpunit/php-code-coverage          9.2.24          Library that provides co...
phpunit/php-file-iterator          3.0.6           FilterIterator implement...
phpunit/php-invoker                3.1.1           Invoke callables with a ...
phpunit/php-text-template          2.0.4           Simple template engine.
phpunit/php-timer                  5.0.3           Utility class for timing
phpunit/phpunit                    9.6.0           The PHP Unit Testing fra...
pixelfear/composer-dist-plugin     v0.1.5          Downloads distributable ...
psr/container                      2.0.2           Common Container Interfa...
psr/event-dispatcher               1.0.0           Standard interfaces for ...
psr/http-client                    1.0.1           Common interface for HTT...
psr/http-factory                   1.0.1           Common interfaces for PS...
psr/http-message                   1.0.1           Common interface for HTT...
psr/log                            3.0.0           Common interface for log...
psr/simple-cache                   3.0.0           Common interfaces for si...
psy/psysh                          v0.11.12        An interactive shell for...
ralouphie/getallheaders            3.0.3           A polyfill for getallhea...
ramsey/collection                  2.0.0           A PHP library for repres...
ramsey/uuid                        4.x-dev 25c4faa A PHP library for genera...
react/promise                      v2.9.0          A lightweight implementa...
rebing/graphql-laravel             8.5.0           Laravel wrapper for PHP ...
scrivo/highlight.php               v9.18.1.9       Server side syntax highl...
sebastian/cli-parser               1.0.1           Library for parsing CLI ...
sebastian/code-unit                1.0.8           Collection of value obje...
sebastian/code-unit-reverse-lookup 2.0.3           Looks up which function ...
sebastian/comparator               4.0.8           Provides the functionali...
sebastian/complexity               2.0.2           Library for calculating ...
sebastian/diff                     4.0.4           Diff implementation
sebastian/environment              5.1.5           Provides functionality t...
sebastian/exporter                 4.0.5           Provides the functionali...
sebastian/global-state             5.0.5           Snapshotting of global s...
sebastian/lines-of-code            1.0.3           Library for counting the...
sebastian/object-enumerator        4.0.4           Traverses array structur...
sebastian/object-reflector         2.0.4           Allows reflection of obj...
sebastian/recursion-context        4.0.5           Provides functionality t...
sebastian/resource-operations      3.0.3           Provides a list of PHP b...
sebastian/type                     3.2.1           Collection of value obje...
sebastian/version                  3.0.2           Library that helps with ...
seld/jsonlint                      1.9.0           JSON Linter
seld/phar-utils                    1.2.1           PHAR file format utiliti...
seld/signal-handler                2.0.1           Simple unix signal handl...
silentz/mailchimp                  v2.10           Subscribe registrations ...
spatie/backtrace                   1.2.1           A better backtrace
spatie/blink                       1.2.0           Cache that expires in th...
spatie/browsershot                 3.57.6          Convert a webpage to an ...
spatie/flare-client-php            1.3.5           Send PHP errors to Flare
spatie/ignition                    1.4.3           A beautiful error page f...
spatie/image                       2.2.5           Manipulate images with a...
spatie/image-optimizer             1.6.2           Easily optimize images u...
spatie/laravel-ignition            1.6.4           A beautiful error page f...
spatie/laravel-newsletter          4.11.0          Manage newsletters in La...
spatie/shiki-php                   1.3.0           Highlight code using Shi...
spatie/temporary-directory         2.1.1           Easily create, use and d...
statamic/cms                       v3.4.2          The Statamic CMS Core Pa...
statamic/stringy                   3.1.3           A string manipulation li...
stillat/proteus                    v1.0.11         Provides utilities for p...
studio1902/statamic-peak-commands  v1.17
symfony/console                    v6.2.5          Eases the creation of be...
symfony/css-selector               v6.2.5          Converts CSS selectors t...
symfony/deprecation-contracts      v3.2.0          A generic function and c...
symfony/error-handler              v6.2.5          Provides tools to manage...
symfony/event-dispatcher           v6.2.5          Provides tools that allo...
symfony/event-dispatcher-contracts v3.2.0          Generic abstractions rel...
symfony/filesystem                 v6.2.5          Provides basic utilities...
symfony/finder                     v6.2.5          Finds files and director...
symfony/http-foundation            v6.2.6          Defines an object-orient...
symfony/http-kernel                v6.2.6          Provides a structured pr...
symfony/lock                       v5.4.19         Creates and manages lock...
symfony/mailer                     v6.2.5          Helps sending emails
symfony/mime                       v6.2.5          Allows manipulating MIME...
symfony/polyfill-ctype             v1.27.0         Symfony polyfill for cty...
symfony/polyfill-intl-grapheme     v1.27.0         Symfony polyfill for int...
symfony/polyfill-intl-idn          v1.27.0         Symfony polyfill for int...
symfony/polyfill-intl-normalizer   v1.27.0         Symfony polyfill for int...
symfony/polyfill-mbstring          v1.27.0         Symfony polyfill for the...
symfony/polyfill-php72             v1.27.0         Symfony polyfill backpor...
symfony/polyfill-php73             v1.27.0         Symfony polyfill backpor...
symfony/polyfill-php80             v1.27.0         Symfony polyfill backpor...
symfony/polyfill-php81             v1.27.0         Symfony polyfill backpor...
symfony/polyfill-uuid              v1.27.0         Symfony polyfill for uui...
symfony/process                    v6.2.5          Executes commands in sub...
symfony/routing                    v6.2.5          Maps an HTTP request to ...
symfony/service-contracts          v3.2.0          Generic abstractions rel...
symfony/string                     v6.2.5          Provides an object-orien...
symfony/translation                v6.2.5          Provides tools to intern...
symfony/translation-contracts      v3.2.0          Generic abstractions rel...
symfony/uid                        v6.2.5          Provides an object-orien...
symfony/var-dumper                 v6.2.5          Provides mechanisms for ...
symfony/var-exporter               v6.2.5          Allows exporting any ser...
symfony/yaml                       v6.2.5          Loads and dumps YAML files
thecodingmachine/safe              v2.4.0          PHP core functions that ...
theseer/tokenizer                  1.2.1           A small library for conv...
tijsverkoyen/css-to-inline-styles  2.2.6           CssToInlineStyles is a c...
ueberdosis/tiptap-php              1.1.0           A PHP package to work wi...
vlucas/phpdotenv                   v5.5.0          Loads environment variab...
voku/portable-ascii                2.0.1           Portable ASCII library -...
webmozart/assert                   1.11.0          Assertions to validate m...
webonyx/graphql-php                v14.11.9        A PHP port of GraphQL re...
wilderborn/partyline               1.0.2           A Laravel 5 package to o...
robdekort commented 1 year ago

Erin feel free to move this issue to the Forma repo.

This is a video from one of my clients where we use forma to save some configuration. You can see what happens with the config file using Forma 1.2.

I've yet to confirm, but it seems this issue is resolved by downgrading to Forma 1.1.

Attached you'll find the working config file and the broken config file (saved with Forma 1.2).

Hope this helps!

EugeneDmarc commented 1 year ago

Hi @robdekort it seems i'm struggling with this issue as well. Would you be so kind to share with us how to downgrade Forma to version 1.1, i can't seem to find how to accomplish this. Thanks in advance!

EugeneDmarc commented 1 year ago

Figured this out just a matter of: composer require edalzell/forma 1.1

Unfortunately downgrading does not solve the error for me

edalzell commented 1 year ago

Erin feel free to move this issue to the Forma repo.

This is a video from one of my clients where we use forma to save some configuration. You can see what happens with the config file using Forma 1.2.

I cannot see the video.

CleanShot 2023-02-18 at 15 16 04@2x
robdekort commented 1 year ago

Ah ok. Sorry bout that. You basically see the files attached being changed upon save. Probably don't need the video.

edalzell commented 1 year ago

@robdekort can you please share the blueprint from that site thatā€™s breaking? Privately, if necessary.

robdekort commented 1 year ago

DM'ing you!

artemverbo commented 1 year ago

Hi! Can confirm, having the same issue. (Updated comment, another problem was unrelated, but flattening array on CP save with 1+ forms still a problem), thank you!

edalzell commented 1 year ago

Ya sorry folks, Iā€™ve been sick for a week and a half so havenā€™t had the energy to deal with this.

Will look at next week at the latest.

robdekort commented 1 year ago

No worries get well! And downgrading Forma is a perfect workaround for now.

edalzell commented 1 year ago

@artemverbo @EugeneDmarc can either of you share a repo with me that shows this issue along with steps to reproduce?

I'm having trouble reproducing it.

robdekort commented 1 year ago

The repo I gave you access to (corusadvies) should make this reproducible. Can I help out there in any way?

edalzell commented 1 year ago

The repo I gave you access to (corusadvies) should make this reproducible. Can I help out there in any way?

Nope, I can reproduce now, thanks.

robdekort commented 1 year ago

Nice! Hope it's an easy one for you!

edalzell commented 1 year ago

Proteus issue: https://github.com/Stillat/proteus/issues/18

edalzell commented 1 year ago

Please run composer update edalzell/forma --with-dependencies to pull in the latest Forma that should pull in Proteus 2.0, which fixes this issue.

robdekort commented 1 year ago

Wonderful!