This repository has been archived by the owner on Sep 7, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 248
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
84 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
1.0.0 | ||
|
||
# setup | ||
|
||
``` | ||
lerna boostrap | ||
npm run next:build | ||
cd packages/phenomic-docs | ||
npm start | ||
``` | ||
|
||
(`npm run build` for static build) | ||
|
||
# what's todo | ||
|
||
A fucking lot | ||
|
||
- Finish & refacto current packages | ||
- phenomic-react & phenomic-webpack as plugins | ||
- allow preset (array of plugins) | ||
- replace main npm scripts workflow for new implementation (break/disable all the things) | ||
- add stuff in checklist to not forget if necessary | ||
- check what's missing from the checklist | ||
- do what's missing that we still want (check) + provide migration doc | ||
- implement missing thing | ||
- remove from old codebase the thing | ||
- or release notes for removed stuff (~~delete from list like that~~) | ||
- review docs & homepage | ||
- RELEASE! | ||
|
||
## checklist | ||
|
||
From https://github.com/MoOx/phenomic/issues/925#issuecomment-271502547 | ||
|
||
Note that stuff can be missing | ||
|
||
- [ ] webpack can be boosted with hard source plugin (cache) | ||
- [ ] internal links from markdown are not doing full page load, but caught and leveraging phenomic optimistic loading (note that “internal” but not unknown links (eg: /project/static-but-not-handled-by-phenomic.html) are not caught. (see `src/_utils/catch-links`) | ||
- [ ] `src/_utils/error-formatter` transform errors to make those more readable (adjust path + remove useless stuff) | ||
- [ ] (terminal) logs are created using a single module for coherence (`src/_utils/log` + src/builder/log-formatter) | ||
- [ ] url + pathname for the website is defined once via the full website url (http://example.com/root/) | ||
- [ ] offline options to enable service worker (for now via offline-plugin) that auto-register content | ||
- [ ] scripts in markdown (json) are correctly escaped (`src/_utils/serialize`) to avoid json parsing issues | ||
- [ ] one util transform all the paths to uri and remove extension like .md/txt/asciidoc etc (`src/_utils/urlify`) | ||
- [ ] webpack 1 and 2 are supported (but I guess webpack 2 can be the only one - [ ] not a lot of changes anyway) | ||
- [ ] works on windows (it’s a feature yeah) | ||
- [ ] src/bin/check-engine check that you use the correct node/npm/yarn version before executing phenomic job (to avoid issue on github etc) | ||
- [ ] $ phenomic start | ||
- [ ] $ phenomic build | ||
- [ ] $ phenomic setup: ask questions to create your config and copy the base theme | ||
- [ ] some const PHENOMIC_* are injected during the build (src/builder/config.common.js) | ||
- [ ] sourcemap works out of the box during development, even for static build that use webpack build for node build (🙃) | ||
- [ ] phenomic check webpack config to avoid error | ||
- [ ] an “assets” folder can be copied from “content” folder - [ ] not sure this make sense with the new architecture - [ ] but people should be able to reference assets from markdown and that should work “as expected” | ||
- [ ] phenomic open project in a tab when you “start” and reuse an existing chrome tab if already open (src/builder/openChrome) | ||
- [ ] postbuild: automatic creation of a CNAME if CNAME option is true, from the config url | ||
- [ ] postbuild: create a .nojekyll file if “nojekyll” is true (default) (src/builder/post-build | ||
- [ ] logs show elapsed time by default | ||
- [ ] dev server show a page saying that JS is required (see src/builder/server) | ||
- [ ] hot loading for modules AND collection content | ||
- [ ] webpack logs are limited by default to avoid noize | ||
- [ ] “/stuff/index.html” works during development (https://github.com/MoOx/phenomic/issues/808) | ||
- [ ] dev server default page show JS error if one occurs (see src/builder/server) | ||
- [ ] dev server handle occupied ports - [ ] if default phenomic ports is not free, we should ask user to double check and offer to use another one (like CRA) | ||
- [ ] react-router scroll mess is handled (see src/client/should-update-scroll.js) | ||
- [ ] glamor & aphrodite should be handled or VERY easy to enable | ||
- [ ] react-helmet should be handled (and/or see next.js head feature) | ||
- [ ] Link handle / & /index.html as a same url for activeState | ||
- [ ] Link should handle local and external link (so you can reference a dynamic value (eg from front-matter) using Link - [ ] see src/components/Link) | ||
- [ ] optimistic loading/layout & shit (see src/components/PageContainer) - [ ] big deal here | ||
- [ ] all the configurations is validated and you get proper warnings if incorrect (see src/configurator) | ||
- [ ] all options! src/configurator/definitions.js | ||
- [ ] offer helper to retrieve collections data (I guess it’s done already :) ) | ||
- [ ] base theme offer a package for a recommended eslint config, recommended stylelint config | ||
- [ ] provide a good default for markdown transformation (see `src/loader-plugin-*`) | ||
- [ ] easy rss & sitemap | ||
- [ ] ability to define routes (eg: tags/:tag) with pagination | ||
- [ ] we should keep or base theme, people seems to like it | ||
- [ ] good docs! | ||
|
||
“Developer features” | ||
- [ ] npm or yarn can be used (even if npm is slower and less predictable) | ||
- [ ] project is run on travis for yarn, circle ci for npm and appveyor for windows/npm | ||
- [ ] project CI should run unit test + build docs + build a new project using the setup and run some end to end test (see e2e-tests) |