thegrumpys / odop

Open Design Optimization Platform (ODOP) - Coil spring design app; mechanical springs; compression spring, extension spring, torsion spring
https://www.springdesignsoftware.org
MIT License
4 stars 5 forks source link

Upgrade to latest Heroku stack #736

Closed grumpyinca closed 11 months ago

grumpyinca commented 2 years ago

Upgrade to latest Heroku stack

grumpyinca commented 1 year ago

See #786

1fifoto commented 11 months ago

We are currently at Heroku-20

Screenshot 2023-09-23 at 2 02 52 PM
1fifoto commented 11 months ago

We set the Heroku stack to Heroku-22 in the Heroku website GUI for odop-staging. Next we issued the command to push to odop-staging

git push heroku-staging master 

This failed with the following console output:

brianwatt@Bris-M1-MBP odop % git push heroku-staging master 
Enumerating objects: 18, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 10 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (18/18), 5.28 KiB | 5.28 MiB/s, done.
Total 18 (delta 0), reused 4 (delta 0), pack-reused 14
remote: Updated 527 paths from a1070533
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Building on the Heroku-22 stack
remote: -----> Using buildpack: https://github.com/mars/create-react-app-buildpack.git
remote: -----> React.js (create-react-app) multi app detected
remote: 
remote: =====! create-react-app-buildpack has reached end-of-life 🌅
remote:        This build may succeed, but the buildpack is no longer maintained.
remote:        On the Heroku-22 stack and beyond, this may fail to build at all.
remote: 
remote:        Please consider migrating to https://nextjs.org or https://remix.run to develop React apps which are deployable using Heroku's Node.js buildpack https://github.com/heroku/heroku-buildpack-nodejs, or you may develop your own create-react-app deployment with Node.js and Nginx buildpacks.
remote: 
remote: =====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-multi.git
remote: =====> Detected Framework: Multipack
remote: =====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-nodejs.git
remote: =====> Detected Framework: Node.js
remote:        
remote: -----> Creating runtime environment
remote:        
remote:        NPM_CONFIG_LOGLEVEL=error
remote:        NODE_VERBOSE=false
remote:        NODE_ENV=stagingemote:        NODE_MODULES_CACHE=true
remote:        
remote: -----> Installing binaries
remote:        engines.node (package.json):  14.x
remote:        engines.npm (package.json):   unspecified (use default)
remote:        
remote:        Resolving node version 14.x...
remote:        Downloading and installing node 14.21.3...
remote:        Using default npm version: 6.14.18
remote:        
remote: -----> Restoring cache
remote:        Cached directories were not restored due to a change in version of node, npm, yarn or stack
remote:        Module installation may take longer for this build
remote:        
remote: -----> Installing dependencies
remote:        Installing node modules
remote:        
remote:        > fsevents@1.2.12 install /tmp/build_b9d1473a/node_modules/fsevents
remote:        > node-gyp rebuild
remote:        
remote:        make: Entering directory '/tmp/build_b9d1473a/node_modules/fsevents/build'
remote:          SOLINK_MODULE(target) Release/obj.target/.node
remote:          COPY Release/.node
remote:        make: Leaving directory '/tmp/build_b9d1473a/node_modules/fsevents/build'
remote:        
remote:        > nodemon@1.19.4 postinstall /tmp/build_b9d1473a/node_modules/nodemon
remote:        > node bin/postinstall || exit 0
remote:        
remote:        Love nodemon? You can now support the project via the open collective:
remote:         > https://opencollective.com/nodemon/donate
remote:        
remote:        
remote:        > esbuild@0.12.29 postinstall /tmp/build_b9d1473a/node_modules/esbuild
remote:        > node install.js
remote:        
remote:        added 570 packages in 7.344s
remote:        
remote: -----> Build
remote:        Running heroku-postbuild
remote:        
remote:        > odop-server@0.0.0 heroku-postbuild /tmp/build_b9d1473a
remote:        > cd client && npm install && npm run build && harp docs build/docs && cd .. && node ./scripts/build_index.js client/build/docs
remote:        
remote:        
remote:        > core-js@2.6.12 postinstall /tmp/build_b9d1473a/client/node_modules/@babel/polyfill/node_modules/core-js
remote:        > node -e "try{require('./postinstall')}catch(e){}"
remote:        
remote:        
remote:        > core-js@2.6.12 postinstall /tmp/build_b9d1473a/client/node_modules/babel-register/node_modules/core-js
remote:        > node -e "try{require('./postinstall')}catch(e){}"
remote:        
remote:        
remote:        > core-js@2.6.12 postinstall /tmp/build_b9d1473a/client/node_modules/babel-runtime/node_modules/core-js
remote:        > node -e "try{require('./postinstall')}catch(e){}"
remote:        
remote:        
remote:        > core-js@3.8.1 postinstall /tmp/build_b9d1473a/client/node_modules/core-js
remote:        > node -e "try{require('./postinstall')}catch(e){}"
remote:        
remote:        added 1804 packages from 809 contributors and audited 1879 packages in 24.791s
remote:        
remote:        60 packages are looking for funding
remote:          run `npm fund` for details
remote:        
remote:        found 301 vulnerabilities (17 low, 120 moderate, 134 high, 30 critical)
remote:          run `npm audit fix` to fix them, or `npm audit` for details
remote:        
remote:        > odop-client@0.1.0 build /tmp/build_b9d1473a/client
remote:        > react-scripts build
remote:        
remote:        Creating an optimized production build...
remote: Browserslist: caniuse-lite is outdated. Please run:
remote: npx browserslist@latest --update-db
remote: 
remote: Why you should do it regularly:
remote: https://github.com/browserslist/browserslist#browsers-data-updating
remote:        Compiled successfully.
remote:        
remote:        File sizes after gzip:
remote:        
remote:          445.52 KB  build/static/js/2.94bc96fd.chunk.js
remote:          229.88 KB  build/static/css/2.4bfdfc03.chunk.css
remote:          183.34 KB  build/static/js/main.0effd109.chunk.js
remote:          762 B      build/static/js/runtime~main.a8a9905a.js
remote:          116 B      build/static/css/main.0cd58a97.chunk.css
remote:        
remote:        The project was built assuming it is hosted at https://odop.heroku.com/.
remote:        You can control this with the homepage field in your package.json.
remote:        
remote:        The build folder is ready to be deployed.
remote:        You may serve it with a static server:
remote:        
remote:          npm install -g serve
remote:          serve -s build
remote:        
remote:        Find out more about deployment here:
remote:        
remote:          https://bit.ly/CRA-deploy
remote:        
remote:        EXCLUDE_DIRECTORIES= [ 'design', 'procedures' ]
remote:        EXCLUDE_FILES= []
remote:        LUNR_INDEX= lunr_index.json
remote:        LUNR_PAGES= lunr_pages.json
remote:        HTML_FOLDER= client/build/docs
remote:        Building index for these files:
remote:            About/ContactUs.html
remote:            About/Intro.html
remote:            About/Legal/Disclaimer.html
remote:            About/Legal/PrivacyStatement.html
remote:            About/Legal/Restrictions.html
remote:            About/Legal/TermsOfService.html
remote:            About/ODOPintro.html
remote:            About/experimental.html
remote:            About/index.html
remote:            About/introPagesOverview.html
remote:            About/requirements.html
remote:            About/userAccounts.html
remote:            Help/DesignTypes/Piston-Cylinder/alerts.html
remote:            Help/DesignTypes/Piston-Cylinder/description.html
remote:            Help/DesignTypes/Solid/alerts.html
remote:            Help/DesignTypes/Solid/description.html
remote:            Help/DesignTypes/Spring/Compression/alerts.html
remote:            Help/DesignTypes/Spring/Compression/description.html
remote:            Help/DesignTypes/Spring/Extension/alerts.html
remote:            Help/DesignTypes/Spring/Extension/description.html
remote:            Help/DesignTypes/Spring/Torsion/alerts.html
remote:            Help/DesignTypes/Spring/Torsion/description.html
remote:            Help/DesignTypes/Spring/alerts.html
remote:            Help/DesignTypes/index.html
remote:            Help/SpringDesign/advancedSpringOperations.html
remote:            Help/SpringDesign/index.html
remote:            Help/SpringDesign/materials.html
remote:            Help/SpringDesign/references.html
remote:            Help/SpringDesign/screenShots.html
remote:            Help/SpringDesign/selectSizeCatalog.html
remote:            Help/SpringDesign/spring_oview.html
remote:            Help/SpringDesign/unitsUSmetric.html
remote:            Help/alerts.html
remote:            Help/autoSave.html
remote:            Help/defaultDesigns.html
remote:            Help/designSituations.html
remote:            Help/errors.html
remote:            Help/feasibility.html
remote:            Help/feasibilityIndicator.html
remote:            Help/features.html
remote:            Help/gettingStarted.html
remote:            Help/gettingStartedSpring.html
remote:            Help/helpLookup.html
remote:            Help/htt.html
remote:            Help/index.html
remote:            Help/introduction.html
remote:            Help/launchODOP.html
remote:            Help/menus.html
remote:            Help/reports.html
remote:            Help/search.html
remote:            Help/seek.html
remote:            Help/settingValues.html
remote:            Help/terminology.html
remote:            Help/trade.html
remote:            Help/tutordemo.html
remote:            Help/wideScreen.html
remote:            index.html
remote:        Pages saved as lunr_pages.json
remote:        Index saved as lunr_index.json
remote:        
remote: -----> Caching build
remote:        - npm cache
remote:        
remote: -----> Pruning devDependencies
remote:        Skipping because NODE_ENV is not 'production'
remote:        
remote: -----> Build succeeded!
remote: =====> Downloading Buildpack: https://github.com/mars/create-react-app-inner-buildpack.git#v9.0.0
remote: =====> Detected Framework: React.js (create-react-app)
remote:        Using existing `static.json`
remote:        Enabling runtime environment variables
remote: =====> Downloading Buildpack: https://github.com/heroku/heroku-buildpack-static.git#21c1f5175186b70cf247384fd0bf922504b419be
remote: =====> Detected Framework: Static HTML
remote: Stack heroku-22 is not supported!
remote:  !     Push rejected, failed to compile React.js (create-react-app) multi app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to odop-staging.
remote: 
To https://git.heroku.com/odop-staging.git
 ! [remote rejected]   master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/odop-staging.git'
brianwatt@Bris-M1-MBP odop % 
1fifoto commented 11 months ago

Found the following Stack Overflow entry: https://stackoverflow.com/questions/72723408/how-to-deploy-reactapp-with-heroku-22

1fifoto commented 11 months ago

Today we found another github user (4riders) who had already converted create-react-app-inner-buildpack from Ruby to Node. So we have cloned this into thegrumpys group. In addition they also converted create-react-app-buildpack too. So we cloned it. Now in Heroku we specify in the Setting for the buildpack to our new outer clone, that is, https://github.com/thegrumpys/create-react-app-buildpack.git which invokes the inner one.

grumpyinca commented 11 months ago

Per Slack conversation, this issue involved changes on the Heroku website config and no code. There is no branch. Closing.