Day 1
(Mostly) In-Order Task Log from Today:
Installed Vapor CLI for Vapor Server-side Swift (referring to the Swift language - www.swift.org)
Installed Heroku CLI for Web App Deployment Hosting
Initiated Heroku Web App (API Template) at a temporary domain
Installed Heroku buildpack for Vapor
Deployed Vapor Hello World Build to a local git repository, then pushed it to two remotes: Heroku and Github.
Modified Vapor build to respond to a custom API call.
Added first test cases to the test folder to ensure testing was up and running.
Added first dependency outside of Vapor to ensure Heroku would compile (took a few tries). More specifically, the package was SwiftMarkdown, allowing Strings containing markdown syntax to be easily converted to HTML in a one-liner. Not using it yet, but needed something outside of the Vapor realm to test dependencies. Can always remove later.
Linked custom domain stockmanager.tech to Heroku by adding the required DNS record to the cPanel of the domain registrar account at .tech domains (type "get.tech" to see their website).
Added dependency to Vapor-Leaf to render HTML files at runtime. Handles the HTML boiler-plate for us to keep us focused on the Swift code. Then added the first .leaf file "home.leaf" (this) to temporary place to put the project title and the change log (for now...). Got this passing. saved, and all committed to Github and Heroku.
Began a Trello board (task management) to keep track of what needs done around the app.
Started composing an email to Dr. Ramirez to update him on us being safe in the midst of the pandemic and that (we hope) we are already off to a good start. ✅
Edited this file some more and did the smallest amount of styling so that the page content only spans a max of 400px wide
Then I got this lovely error. I messed up by telling Xcode to update swift package dependencies, now "version solving failed". Will have to deploy a new vapor project tomorrow with two new remote repos. Better to make that mistake on Day 1 than Day 20, learned a good lesson.
remote: error: because Core 3.4.0..<3.7.0 depends on swift-nio 1.8.0..<2.0.0 and Core 3.7.0..<3.9.0 depends on swift-nio 1.12.0..<2.0.0, Core 3.4.0..<3.9.0 requires swift-nio 1.8.0..<2.0.0.remote: And because Core >=3.9.0 depends on swift-nio 1.14.1..<2.0.0 and leaf 3.0.1..<4.0.0-alpha.1 depends on core 3.4.1..<4.0.0, leaf 3.0.1..<4.0.0-alpha.1 requires swift-nio 1.8.0..<2.0.0.remote: And because no versions of leaf match the requirement 4.0.0-alpha.1..<4.0.0 and Vapor >=4.0.0-beta.3.11 depends on swift-nio 2.13.1..<3.0.0, leaf is incompatible with vapor.remote: And because root depends on vapor 4.5.1..<5.0.0 and root depends on leaf 3.0.2..<4.0.0, version solving failed.remote: ! Push rejected, failed to compile Swift app.remote:remote: ! Push failedremote: Verifying deploy...remote:remote: ! Push rejected to infinite-retreat-97537.remote:To https://git.heroku.com/infinite-retreat-97537.git! [remote rejected] master -> master (pre-receive hook declined)error: failed to push some refs to 'https://git.heroku.com/infinite-retreat-97537.git'
Excited to be coding in Swift, not excited about getting Vapor "Services" up and running to call our APIs to make things work. Need to be careful with Swift dependencies, boy are they sensitive with version conflicts when they are really interdependent like those from the Vapor moderators and Vapor Community. Bare with us while we format this log to best suit the needs of the project.