politicnewsbusterinsiderpostreview

Saturday, 30 April 2022

[New post] The First Taste of Compatibility Issue

Site logo image YosepRA posted: " So… I got my first taste of compatibility issues and the headache of solving its puzzle yesterday. And I tell you this, ladies and gentlemen, it was NOT FUN. It wasn't frustrating enough to drive me into madness, but it definitely drove me to the point o"

The First Taste of Compatibility Issue

YosepRA

Apr 30

So… I got my first taste of compatibility issues and the headache of solving its puzzle yesterday. And I tell you this, ladies and gentlemen, it was NOT FUN. It wasn't frustrating enough to drive me into madness, but it definitely drove me to the point of mental exhaustion where all I can do after that was laying down on my bed like a potato, unmoving and unperturbed. But in the end, I solved it after accepting a point of compromise and I had a good night sleep.

Here is the story. I've finished all I needed on integrating Cloudinary into PetTake. I have my routes ready and I have updated my pet's data structure to fit Cloudinary's requirements. Everything is sunshine and daisy as I was getting ready to work on the front-end. And right at the moment of typing create-react-app's start command, it failed to compile the files. Well shoot, here we go again. And off to hell I go.

The problem I was having surrounds these main packages/tools:

  1. Create-React-App (CRA).
  2. ESLint.
  3. eslint-config-airbnb.
  4. Prettier.
  5. eslint-config-prettier.
  6. eslint-plugin-prettier.

The main motivation to solve this problem is my stubbornness to use ESLint, extended with Airbnb spec and Prettier rules. I don't know where to start with this since it was such a rabbit hole where if I fix one problem, two more occur. I think I can start with ESLint inability to read the "prettier/prettier" rule. I think the error message goes like this, "context.getPhysicalName is not a function". At this point, I'm sure I had the latest version of everything except CRA which I still use version 4. But ESLint refuses to do its work until I have the perfect configuration file. Shaking my head…

What comes to that was a little tour of downgrading all of Prettier-related packages, but to no avail as the problem remains. I tried to downgrade ESLint from version 8 to 7. Again without any result since it clashes with Airbnb config peer dependencies. There is a simple solution however which is to delete "prettier/prettier" rule, to which I did because I want to see the dev server working first.

Deleting the "prettier/prettier" rule works a charm and I can run the dev server. There was a problem in regards of JSX syntax, and again ESLint refuses to work until every star is aligned. It suggests me to install "@babel/preset-react". But since I don't directly use Babel, and as long as I've been using CRA, it never suggest me to install any Babel related packages, then I come to a conclusion that I may need to install some sort of React-related ESLint config provided by CRA. I read the past version of my ESLint config using GitHub, and I found that I need to extend ESLint with "react-app" configuration. I installed it and it solves the problem.

I don't remember whether I had it all working at this moment because spoiler alert, this is the point of compromise which I talked about earlier. A compromise where I need to abandon Prettier. But the me at the time still not satisfied until I integrate everything and get it working, that means I also need to include Prettier into the mix. Then I added the "prettier/prettier" rule back into ESLint config, and so the earlier problem resurfaces as I tried to tackle. Little did I know that this is where I enter the hell of compatibility issues.

Environment variables in create-react-app.

Compared to the previous problem, I didn't have a catch whatsoever on this one. Off to Google I go. In StackOverflow, I found a suggestion to install ESLint version 7 and "react-scripts" version 4.0.1. I did just that and then further into the hell hole I go. To my great surprise, now CRA dev server can't start because there's an ESLint error. Why is it a surprise? Well, because I have solved this problem way too long ago, which is to add "ESLINT_NO_DEV_ERRORS" set to true in environment file. I don't remember messing with the environment file, but I checked it regardless. And… The necessary variable is still there. I went and check the CRA website to see if I made a typo, and no I didn't.

Checking packages' peer dependencies.

Installing "react-scripts@4.0.1" was a massive turning point as I enter the rabbit hole. Right after this was a series of upgrading and downgrading all of the ESLint packages, reading each of the packages peer dependencies, and the suffering of restarting CRA dev server (or Webpack's to be precise) which is notoriously slow to compile in this old laptop of mine. I don't even want to retrace everything and talk over it since I probably have a trauma of it. It was not a pleasant experience to have. Of course this experience may not be much for seasoned veterans who probably have faced a nastier compatibility problem when dealing with legacy codes. But I will restate it as many times as I could, it was not a pleasant experience.

That was a cycle of hell as I go through the process of giving up and not giving up. My persistence to use ESLint and Prettier is the cause for this hell, but also the motivation that kept me driving forward. Everything was hell until I found someone say in StackOverflow that CRA's refusal to compile with ESLint errors to have been solved in "react-scripts@4.0.3". I paused for a second and thought "Wait… Is that the version that I used previously?" I then tried to install said version, remove the "prettier/prettier" rule, and run the dev server. Voila… It was working again. I had my head on the table, and my arms dangling lifelessly and helplessly as I laugh at the comedy life has thrown to me. All of those rabbit hole and labyrinth, just for me to get back to my starting point. Oh life, my dear… That was funny. Yes, you can definitely see my laughing face.

It works... Finally. 😭

All in all, again, I come to a point of compromise with not using extending ESLint with Prettier this time. I can't be bothered with this anymore. No, I don't want to be bothered with this anymore. I ran the back-end server, CRA dev server, and tweaked a bit of the front-end GraphQL query strings. And thus I got the first view of the app working successfully for the whole day.

What's the lesson for today? Meh, It's persistence, I guess? Good old magic word, indeed. I don't even have any energy to rant about how sometimes unpleasant it is to work with ESLint and CRA. But I've learned my lesson, and I believe this will be valuable later on the long road ahead. For now, let me god damn finish PetTake's image service upgrade, will you? Well, that was all. Thank you for reading my journal and have a very nice day.

Comment
Like
Tip icon image You can also reply to this email to leave a comment.

Unsubscribe to no longer receive posts from StudioYosepRA.
Change your email settings at manage subscriptions.

Trouble clicking? Copy and paste this URL into your browser:
https://yosepra.wordpress.com

Powered by WordPress.com
Download on the App Store Get it on Google Play
at April 30, 2022
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest

No comments:

Post a Comment

Newer Post Older Post Home
Subscribe to: Post Comments (Atom)

BREAKING: North Carolina automotive group acquires 7 Upstate dealerships

Breaking news from GSA Business Report Click here to view this message in a browser window. ...

  • Search Engine Watch
    Search Engine Watch ...
  • Search Engine Watch
    Search Engine Watch Seven Google alerts SEOs need to stay on top of everything! Posted: 25 Jan 2022...
  • Search Engine Watch
    Search Engine Watch ...
  • https://paxorex.blogspot.com
  • https://acciyo.blogspot.com
  • https://sunbrew.blogspot.com
  • https://readingvox.blogspot.com
  • https://neextdraft.blogspot.com
  • https://udimy.blogspot.com
  • https://arcieve.blogspot.com
  • https://diabetesmail.blogspot.com
  • https://quiltingmail.blogspot.com
  • https://downloadallyouwanttutorials.blogspot.com
  • https://increasingmarketingsystem.blogspot.com
  • https://skysportingnewsnationspinquirer.blogspot.com
  • https://politicnewsbusterinsiderpostreview.blogspot.com
  • https://javascripttrendlist.blogspot.com
  • https://teraqiitatail.blogspot.com
  • https://bigpalacenews.blogspot.com
  • https://executivetowernews.blogspot.com
  • https://magnificentplannews.blogspot.com
  • https://businessinboard.blogspot.com
  • https://patriotsscience.blogspot.com
  • https://allinonequantumleap.blogspot.com
  • https://foodandrecipefusion.blogspot.com
  • https://newsletterforeveryone.blogspot.com
  • https://snacksrobinhood.blogspot.com
  • https://dailynewslettersph.blogspot.com
  • https://rankedrama.blogspot.com
  • https://oschinanet.blogspot.com
  • https://nourich.blogspot.com
  • https://phnewsnet.blogspot.com
  • https://structuresusingc.blogspot.com
  • https://foodubers.blogspot.com
  • https://genuinequality.blogspot.com
  • https://techdigitalmedia.blogspot.com
  • https://entertainmenhubtbiz.blogspot.com
  • https://sportsbookwire.blogspot.com
  • https://societycast.blogspot.com
  • https://lifestylesportsreturn.blogspot.com
  • https://natureimpactfactor.blogspot.com
  • https://artnetworth.blogspot.com
  • https://entrepreneurexamples.blogspot.com
  • https://cryptomarketbase.blogspot.com
  • https://btsbiot.blogspot.com
  • https://sexybinikis.blogspot.com
  • https://foreignexchangecurrency.blogspot.com
  • https://classifiedexample.blogspot.com
  • https://bookboons.blogspot.com
  • https://writingdate.blogspot.com
  • https://wamios.blogspot.com
  • https://justmightdiy.blogspot.com
  • https://playfreeonlinegamesmore.blogspot.com
  • https://healthlinefitnessfirst.blogspot.com
  • https://snaptikvideodownloader.blogspot.com
  • https://pokemonunitepc.blogspot.com
  • https://neverthelesskdrama.blogspot.com
  • https://coolantioniq.blogspot.com
  • https://hackerploit.blogspot.com
  • https://ballbreakdown.blogspot.com
  • https://flixsterio.blogspot.com
  • https://fortnitebattleroyaletrack.blogspot.com
  • https://manilaplus.blogspot.com
  • https://davaoplus.blogspot.com
  • https://tutorialsfiles.blogspot.com
  • https://mondaymorningcookingclub.blogspot.com
  • https://gymnearmee.blogspot.com
  • https://windows26.blogspot.com
  • https://millionaireinvest.blogspot.com
  • https://latestkhmernews.blogspot.com
  • https://latestisraelnews.blogspot.com
  • https://latestaustralianews.blogspot.com
  • https://latestirannews.blogspot.com
  • https://latestjapannews.blogspot.com
  • https://latestsaudinews.blogspot.com
  • https://latestfreecourse.blogspot.com
  • https://ikeafurnitureaccessories.blogspot.com
  • https://makeupandbeautyproduct.blogspot.com
  • https://latestpets.blogspot.com
  • https://topecommerceniches.blogspot.com
  • https://latesttexasnews.blogspot.com
  • https://latestufcgame.blogspot.com
  • https://tipweightlossfast.blogspot.com
  • https://latestcancercure.blogspot.com
  • https://philsys.blogspot.com
  • https://phoramensoba.blogspot.com
  • https://latestcupcakes.blogspot.com
  • https://latestgivex.blogspot.com
  • https://latestlottoresult.blogspot.com
  • https://downloadarchived.blogspot.com
  • https://doesports.blogspot.com

Search This Blog

  • Home

About Me

politicnewsbusterinsiderpostreview
View my complete profile

Report Abuse

Labels

  • 【ANDROID STUDIO】ViewModel Two Way Data Binding
  • 【FLUTTER ANDROID STUDIO and IOS】 Cupertino TabScaffold
  • 【FLUTTER ANDROID STUDIO and IOS】 Expenses App
  • 【FLUTTER ANDROID STUDIO and IOS】 Explicit Animations
  • 【FLUTTER ANDROID STUDIO and IOS】 PDF Viewer
  • 【FLUTTER ANDROID STUDIO and IOS】 productivity timer
  • 【FLUTTER ANDROID STUDIO and IOS】 SimpleDialog
  • 【FLUTTER ANDROID STUDIO and IOS】bidirectional swipable or slidable sqflite with remote http using dio
  • 【FLUTTER ANDROID STUDIO and IOS】bloc design pattern
  • 【FLUTTER ANDROID STUDIO and IOS】bluetooth
  • 【FLUTTER ANDROID STUDIO and IOS】Call Android Java Code
  • 【FLUTTER ANDROID STUDIO and IOS】card selector
  • 【FLUTTER ANDROID STUDIO and IOS】change the chart dynamically using provider state management
  • 【FLUTTER ANDROID STUDIO and IOS】chip
  • 【FLUTTER ANDROID STUDIO and IOS】CircularProgressIndicator
  • 【FLUTTER ANDROID STUDIO and IOS】credit card view
  • 【FLUTTER ANDROID STUDIO and IOS】CRUD Streams
  • 【FLUTTER ANDROID STUDIO and IOS】DropdownButton
  • 【FLUTTER ANDROID STUDIO and IOS】dynamic event calendar management
  • 【FLUTTER ANDROID STUDIO and IOS】Endless ListView
  • 【FLUTTER ANDROID STUDIO and IOS】face detection and recognition using machine learning vision
  • 【FLUTTER ANDROID STUDIO and IOS】Fetch Data From The Internet
  • 【FLUTTER ANDROID STUDIO and IOS】Firebase Firestore Realtime CRUD operation
  • 【FLUTTER ANDROID STUDIO and IOS】folding cell
  • 【FLUTTER ANDROID STUDIO and IOS】Fuzzy search list initially translated from Fusejs
  • 【FLUTTER ANDROID STUDIO and IOS】GETX State Management
  • 【FLUTTER ANDROID STUDIO and IOS】giffy dialog
  • 【FLUTTER ANDROID STUDIO and IOS】IconButton
  • 【FLUTTER ANDROID STUDIO and IOS】leaflet map with marker popup
  • 【FLUTTER ANDROID STUDIO and IOS】load csv
  • 【FLUTTER ANDROID STUDIO and IOS】Measures Converter
  • 【FLUTTER ANDROID STUDIO and IOS】Multiple Files For Each Screen
  • 【FLUTTER ANDROID STUDIO and IOS】Navigate With Named Routes
  • 【FLUTTER ANDROID STUDIO and IOS】Nesting Rows and Columns
  • 【FLUTTER ANDROID STUDIO and IOS】notifications in background handling with Workmanager
  • 【FLUTTER ANDROID STUDIO and IOS】Packing Widgets
  • 【FLUTTER ANDROID STUDIO and IOS】Parsin JSON In The Background
  • 【FLUTTER ANDROID STUDIO and IOS】Parsing Blogger or Blogspot RSS Feeds in Flutter
  • 【FLUTTER ANDROID STUDIO and IOS】rating dialog
  • 【FLUTTER ANDROID STUDIO and IOS】restful calls with ajax
  • 【FLUTTER ANDROID STUDIO and IOS】Reverse and Stop Animations
  • 【FLUTTER ANDROID STUDIO and IOS】reviews slider
  • 【FLUTTER ANDROID STUDIO and IOS】RxDart BloC
  • 【FLUTTER ANDROID STUDIO and IOS】Scan Text and Barcodes Recognition and Detection with ML Kit
  • 【FLUTTER ANDROID STUDIO and IOS】scratch card
  • 【FLUTTER ANDROID STUDIO and IOS】SQflite and mobx with Cache log
  • 【FLUTTER ANDROID STUDIO and IOS】sqlite task manager Any Task Any Goal Get Things Done
  • 【FLUTTER ANDROID STUDIO and IOS】Staggered Animation
  • 【FLUTTER ANDROID STUDIO and IOS】staggered grid view
  • 【FLUTTER ANDROID STUDIO and IOS】Stateful Send Data To A New Screen
  • 【FLUTTER ANDROID STUDIO and IOS】text to speech
  • 【FLUTTER ANDROID STUDIO and IOS】Tween Animation
  • 【FLUTTER ANDROID STUDIO and IOS】Typehead autocompletion textfield library
  • 【FLUTTER ANDROID STUDIO and IOS】video recorder and picker and image picker
  • 【GAMEMAKER】 Enemy Path Finding
  • 【GAMEMAKER】Allowing a Player to Get In or Out of the Drivable Vehicle
  • 【GAMEMAKER】Card battle
  • 【GAMEMAKER】Character Stats Progression Upgrade
  • 【GAMEMAKER】Destructable Terrain
  • 【GAMEMAKER】Dice Roll
  • 【GAMEMAKER】Fishing_Mini_Game
  • 【GAMEMAKER】HUD show spells
  • 【GAMEMAKER】Lives
  • 【GAMEMAKER】Pong Retro Game Remake
  • 【GAMEMAKER】Positional Audio
  • 【GAMEMAKER】Retro Brick and Ball Game Remake
  • 【GAMEMAKER】Simple Battle System
  • 【GAMEMAKER】Simple Game Quest
  • 【GAMEMAKER】sokoban Designing Levels a room with string or text gamemaker with http get
  • 【GAMEMAKER】sokoban pushable object
  • 【GAMEMAKER】Speech bubble typewriter alert text effect
  • 【GAMEMAKER】Tank Trax with wind simulation remake
  • 【GAMEMAKER】write text files that can be downloaded and processed
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】Authentication System in Flutter with Laravel Passport
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】GETX and Dio CRUD Create Read Update Delete
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】GETX and GETX STORAGE CRUD Create Read Update Delete
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】IndexedStack Keep State(Avoid to Rebuild)
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】Laravel Pagination infinite scroll load more
  • 【LARAVEL and FLUTTER ANDROID STUDIO and IOS】Uploading a File to a Server from Flutter Using a Multi-Part (form-data) POST Request
  • 【LARAVEL PHP and FLUTTER ANDROID STUDIO and IOS】dynamic multiple text field
  • 【PYTHON OPENCV】 Face detection using dlib frontal face detector
  • 【PYTHON OPENCV】Cat face detection using haar feature-based cascade classifiers
  • 【PYTHON OPENCV】Face detection using cvlib face detector (uses DNN OpenCV face detector)
  • 【PYTHON OPENCV】Face detection using dlib CNN face detector using a pre-trained model
  • 【PYTHON OPENCV】Face detection using dlib frontal face detector
  • 【PYTHON OPENCV】Face detection using haar feature-based cascade classifiers
  • 【PYTHON OPENCV】Face detection using OpenCV DNN face detector
  • 【PYTHON OPENCV】Image classification using OpenCV CNN module SqueezeNet and caffe pre trained models
  • 【PYTHON OPENCV】This script makes used of dlib library to calculate the 128D descriptor to be used for face recognition and compare the faces using some distance metrics
  • 【PYTHON OPENCV】Training a linear regression model using Keras
  • 【PYTHON】Cross Validation Regression R2
  • 【REDUX and VANILLA JS】 CRUD
  • 【Visual Studio vbnet】 Delete All
  • 【Visual Studio Visual Csharp】Item Color
  • 【VISUAL VB NET】Enumerate Windows
  • 【VISUAL VB NET】Export HTML table to excel any format xls
  • 【VISUAL VB NET】File Properties
  • 【VISUAL VB NET】Monitor StandBy
  • 【VISUAL VB NET】Mouse Position
  • 【VISUAL VB NET】MS Word
  • 【VISUAL VB NET】Mutex
  • 【VISUAL VB NET】Panel Gradient
  • 【VISUAL VB NET】Print
  • 【VISUAL VB.NET】Admin Check
  • 【VISUAL VB.NET】Calendar
  • 【VISUAL VB.NET】Convert To Hex
  • 【VISUAL VB.NET】Create Desktop Shortcut
  • 【VISUAL VB.NET】Create File and Write File
  • 【VISUAL VB.NET】Enumerate_network_resources
  • 【VISUAL VB.NET】File Dates Info
  • 【VISUAL VB.NET】Firewall Enable or Disable
  • 【VISUAL VB.NET】Get DiskFreeSpace
  • 【VISUAL VB.NET】Get_computer_name
  • 【VISUAL VB.NET】Get_processor_type
  • 【Vuejs】 bind the values ​​of parent and child components in two directions
  • 【Vuejs】 book management (use directive and filter)
  • 【VUEJS】 seamless carousel effect
  • 【Vuejs】 Weekly Expenses app with chart js
  • 【VUEJS】element ui audio player functions
  • 【VUEJS】photo-sphere-viewer 360°×180° panoramic plug-in to simulate VR viewing and room switching
  • 【Vuejs】realtime geolocation tracking with leaflets and firebase database
  • 【Vuejs】Response speed test tool
  • and SQLite
  • and weapon
  • BLoCs
  • change HP
  • Face detection using face_recognition CNN face detector (internally calls dlib CNN face detector)
  • Gold
  • inventory
  • which is based on Histogram of Oriented Gradients (HOG) features and a linear classifier in a sliding window detection approach
  • xlsx
  • xml
  • XP

Blog Archive

  • August 2023 (1890)
  • July 2023 (2818)
  • June 2023 (2887)
  • May 2023 (3025)
  • April 2023 (2803)
  • March 2023 (2973)
  • February 2023 (2644)
  • January 2023 (2760)
  • December 2022 (2650)
  • November 2022 (2615)
  • October 2022 (2585)
  • September 2022 (2497)
  • August 2022 (2502)
  • July 2022 (2522)
  • June 2022 (2639)
  • May 2022 (2318)
  • April 2022 (2361)
  • March 2022 (2365)
  • February 2022 (2208)
  • January 2022 (2359)
  • December 2021 (2475)
  • November 2021 (3152)
  • October 2021 (3245)
  • September 2021 (3145)
  • August 2021 (3261)
  • July 2021 (3191)
  • June 2021 (3123)
  • May 2021 (3027)
  • April 2021 (2578)
  • March 2021 (1895)
  • February 2021 (1363)
  • January 2021 (1524)
  • December 2020 (916)
Powered by Blogger.