Title: Discussion: the road to AngularFire v6 · Issue #2267 · angular/angularfire · GitHub
Open Graph Title: Discussion: the road to AngularFire v6 · Issue #2267 · angular/angularfire
X Title: Discussion: the road to AngularFire v6 · Issue #2267 · angular/angularfire
Description: The road to AngularFire v6 Angular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) breaks for over a year! 🎉 Hope everyone has enjoye...
Open Graph Description: The road to AngularFire v6 Angular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) breaks for...
X Description: The road to AngularFire v6 Angular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) br...
Opengraph URL: https://github.com/angular/angularfire/issues/2267
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Discussion: the road to AngularFire v6","articleBody":"# The road to AngularFire v6\r\n\r\nAngular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) breaks for over a year! 🎉\r\n\r\nHope everyone has enjoyed this consistency.\r\n\r\n## Why break at all?\r\n\r\nWe currently support three Angular (6, 7, and 8) and Firebase majors (5, 6, and 7) with the current version of AngularFire... that's a lot of work.\r\n\r\nTo support older versions of Firebase we have a number of conditionals and a lot of unneeded code/types.\r\n\r\nTo maintain support for older versions of Angular, we've been holding back our typescript version and not adopting any new APIs.\r\n\r\n## Plan of action\r\n\r\n### Version 5.3:\r\n\r\nRelease it, WIP here #2187 \r\n\r\n\u003cstrike\u003e\r\n\u003ch3\u003eVersion 5.4:\u003c/h3\u003e\r\n\r\nReimplement `@angular/fire/database-deprecated` using `@angular/fire/database` under the hood. It's been raised that `database-deprecated` has been pretty broken since we've dropped it from our test suite but it is holding back some of our developers from upgrading. We should try to get them on the latest version of 5, before we start breaking things.\r\n\r\nPerhaps at this point we'll mark peer support for Angular 9.0 final. So far in my testing the release candidates seem to work fine and we shouldn't _need_ to break a major to support.\r\n\r\nOnce we've dealt with that:\r\n\u003c/strike\u003e\r\n\r\n### Version 5.3.1:\r\n\r\nCherry-pick the fixes for the `ng add` and `ng deploy` commands.\r\n\r\n### Version 6:\r\n\r\n* Bump the peer dependency to the latest minor of Firebase (currently v7.6)\r\n* Bump the peer dependency of Angular to v9\r\n* Bump the peer dependency of Typescript to bring inline with Angular v9 (currently v3.6)\r\n* Various bugs / types / export naming (see `SEMVER` comments in the source)\r\n* Change our build process to use `ng-packagr` #2117 \r\n* Drop the `angularfire2` shim releases on NPM\r\n* Add the SDK proxy that `AngularFireAnalytics` and `AngularFireRemoteConfig` use in the upcoming 5.3 release (#2187) to all the modules and drop the instance getters.\r\n* ~Make all modules side-effect free (no longer importing the SDKs)~\r\n\r\n### Version 6.1:\r\n\r\n* \"Lazy\" versions of all the \"non-lazy\" modules. These do not assume the developer has loaded any of the Firebase SDKs and will dynamically import them; obviously some APIs will be different.\r\n\r\n### Version 7:\r\n\r\n* Drop the \"non-lazy\" modules\r\n* Move all our operators, observables, etc. to pure-functions (**more on this soon**)\r\n* whatever else we think of by then...\r\n\r\n### Things we're thinking of:\r\n\r\n* Reduce the amount of code in this library by leaning on RxFire\r\n* \u003cstrike\u003eCan we build a migrator for `@angular/fire/database-deprecated` in a reasonable timespan? If so, I'll drop `database-depreciated` in version 6, if not we'll punt until version 7.\u003c/strike\u003e During my investigation I found little evidence that those still using `database-depreciated` had moved to 5.0 stable; I've decided to drop for 6.0.\r\n* How different would the \"lazy\" modules actually be? Can we just migrate over to them in 6 rather than have them be optional until 7?\r\n* ~Require the user `import 'firebase/*'` themselves before use of the non-lazy modules, this would allow us to export all the packages under `@angular/fire` and mark them as having no side-effects.~ ngcc no longer has issue with this\r\n* Shallow up the exports, if we're entirely side-effect free we can export everything in `@angular/fire` rather than having sub-packages.\r\n* Strong type support in the vanilla Firestore SDK is available now with [FirestoreDataConverter](https://firebase.google.com/docs/reference/js/firebase.firestore.FirestoreDataConverter.html). Can we leverage this to get some of our Firestore type work for free in AngularFire \u0026 make the guarantees \"stronger\"? Can we use this for production-worthy state-transfer?","author":{"url":"https://github.com/jamesdaniels","@type":"Person","name":"jamesdaniels"},"datePublished":"2019-12-17T19:20:35.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":38},"url":"https://github.com/2267/angularfire/issues/2267"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:1b2a29a9-df11-0fa9-cf68-acc84291d778 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D626:17FEBD:BF160D:1025959:6A5A9362 |
| html-safe-nonce | 185c0e1018759e4a9d5a9d81f2b29cce0721cd3d4461aed29b9aee24adba5fe4 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENjI2OjE3RkVCRDpCRjE2MEQ6MTAyNTk1OTo2QTVBOTM2MiIsInZpc2l0b3JfaWQiOiI3OTU0OTY3NTg2NTIxMzg3ODc0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 8a762535902c4955cdac2fa2b0c82f7bce41cb2f1139cc0d23d98d91298fe2bd |
| hovercard-subject-tag | issue:539261395 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/angular/angularfire/2267/issue_layout |
| twitter:image | https://opengraph.githubassets.com/d2e1a44f5d91deb12b585676fe2451b66cbef4a60fb02f8f3b68363f5f7153fd/angular/angularfire/issues/2267 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/d2e1a44f5d91deb12b585676fe2451b66cbef4a60fb02f8f3b68363f5f7153fd/angular/angularfire/issues/2267 |
| og:image:alt | The road to AngularFire v6 Angular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) breaks for... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jamesdaniels |
| hostname | github.com |
| expected-hostname | github.com |
| None | 9989a1a1d89aa5a38a19e5d0c7ee88a8ffde84acde90048990492aae52f235db |
| turbo-cache-control | no-preview |
| go-import | github.com/angular/angularfire git https://github.com/angular/angularfire.git |
| octolytics-dimension-user_id | 139426 |
| octolytics-dimension-user_login | angular |
| octolytics-dimension-repository_id | 49453413 |
| octolytics-dimension-repository_nwo | angular/angularfire |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 49453413 |
| octolytics-dimension-repository_network_root_nwo | angular/angularfire |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | ba6769fbf719c56dbf7bed650ce454dafc5b1528 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width