Skip to content

Release/0.4.0#427

Merged
blackforestboi merged 128 commits intomasterfrom
release/0.4.0
Jun 21, 2018
Merged

Release/0.4.0#427
blackforestboi merged 128 commits intomasterfrom
release/0.4.0

Conversation

@poltak
Copy link
Copy Markdown
Member

@poltak poltak commented Jun 21, 2018

Creating this so we can discuss and report issues directly relating to all the new release changes.

Don't merge this though - it will be simpler to do directly via git due to the need to merge into both master and develop.

blackforestboi and others added 30 commits May 29, 2018 11:58
First stab on Git Flow implementation.

Updates for next release go in here, rest of PR's go to develop.

Release contains:
- Feature: Excluding pages with terms and domains in search results.
- Bug fixes (@poltak, can you add those here?)
* Catch old index interface method errors

- most old index methods use `makeIndexFnConcSafe` to handle concurrency with the index queue; put a `.catch` on that
- surprised that people are still on old index....

* Fix old index uncaught bookmarking errors

* Fix misc. uncaught fetch calls

* Fix favicon data URL => Blob error handling

- need to handle invalid data URLs; occured a few times

* Fix issue in imports UI state derivation

- we used to have old extension migration in imports, but we got rid of it
- data could still be in local storage, so make sure we are only setting the data we need

* Remove JSON serde on imports state persistence

- local storage doesn't need to be a string in web exts; I think this was set up a long time ago and we forgot about
- could have been the cause of UI perf. issues: parsing is CPU-bound - as imports progresses, amount of crap needed to parse increased
- bonus either way
- old options has `font-weight: bold;` rule, but didn't import the default Open Sans bold (700), it was falling back to 600
- now that more Open Sans weights are supported, it's defaulting back to 700 and thus looks a bit weird
- now `-site:github.com` should exclude `github.com`
- if you did an omnibar search from an overview tab, it would easily mess up if any of the prev search params clash with new ones
- it should be pure: each URL maps to the same search params every time
- simply recreates the ts, js, css compilation into differenent extension scripts now

Bring over static files copy stage in webpack build

- now it builds a usable extension in <20s :D
- removed the unused `src/update` stuff (we used to show a page on update when we released the big old->new extension update)
- updated all the links to the bundles (now they're in the root of the `extension/` build dir)

Refactor build config into feature module dir

- getting big and messy; refactor to small modules
- updated npm build + watch scripts; old ones have `-old` postfix

Add support for web ext auto-reload on rebuild

Add process.env support to build

Add webpack support for importing images

- svgs included

Esnure external package CSS gets imported

- we use this for slick-carousel in the tutorial and date picker in overview
- slick-carousel was statically copied and brought in via an HTML link before
- date picker was imported directly, but we needed to change from using the css-modules version to standard css

Set up webpack HTML generation

- can keep slimming down the stuff manually linked inside the HTML until no need for the separate templates

Move to a single HTML template to generate from

- generated for popup and options scripts only

Remove clean webpack plugin

- not much need I think; subsequent builds just overwrite old and there's no hashing or anything needed since we're a web ext

Differentiate dev and prod source map generation

- so many different options to pick from: https://webpack.js.org/configuration/devtool/
- this one for dev seems to be fairly fast (<20s initial build, 1-3s inc. builds)
- may change the prod ones as we only need them to upload to sentry apparently

Misc. build optimizations

- followed these docs for a few helpers https://webpack.js.org/guides/build-performance/

Implement multi-thread JS/TS compile + better caching

- will run multiple babel/ts-loader instances to compile our code-base. # of threads will be your # of CPUs - 1
- intermediate module caching now done via HardSourcePlugin (greatly speeds up subsequent builds; ~6s now for me)

Run fork TS checker plugin synchronously

- default is async, but when your typechecking is much faster than your compilation, it's recommended to run sync for better accuracy: https://github.com/Realytics/fork-ts-checker-webpack-plugin#options
- no noticable perf issues
- also add npm scripts for manual cache clearing + bundle stats

Disable webext reload plugin due to perf issues

- added 2-4s onto each incremental build; these are the most important build times IMO
- may raise issue upstream or look into code to find out why (something to do with the reload?)

Set up automated asset linking in generated HTML

Set up TS+JS+CSS linting in build and npm script

- updated versions, made sure everything passes, moved configs to JS files for more flexibility
- set up parallel `lint` npm script and ensured other linters all have scripts
- set up webpack build to do linting

Add optional support for OS build notifs

- I really find this useful; non-default `watch:notifs` script though, as some people may find it very annoying

Remove caching from prod build

Fix broken test

- no idea how this broke :/ the import was wrong, so not sure why it was passing before

Set up CI specific build

- linters disabled (they are run separately)
- no multi-threaded JS/TS loaders (TS plugin still runs on separate thread; not sure if 1 extra thread is an issue)

Ensure gulp build unchanged

- some issue with how I changed things to work with webpack build
- moved slick CSS stuff back to HTML <link>s
- added loader for vanilla CSS from node_modules (prev using webpack loaders in import)

Fix shadowed var name regression in imports data-sources

- some how this broke; still unsure how
- broken in both old and new build
- simply changing the var name (dirNode was also defined in the outter scope) fixed this

Remove sourcemaps from CI build

Ensure redux devtools still works

- updated versions as well
- not entirely finished

Move to extracted CSS to fix content_script CSS issue

- style-loader doesn't seem to be able to insert the <link> tags properly in content_scripts; have played with updating the `insertInto` selector, but no results
- put a note in comments to possibly come back to this later if we come up with a workaround (style-loader is nicer for dev; more possibilities like HMR)

Set up sentry plugin

- set to dry run for now; will need to instruct on usage (needs rc file)
- will upload source maps and create a new release in sentry

Set up custom asset minimization on production

- webpack 4 doesn't support CSS min
- thinking about this I'm not sure about the need

Implement prod build extension packaging

- source code packaging not yet working - opened issue upstream

Implement manifest version setting from package.json
Webpack production build progress
Humanized the import estimated duration label
#415

# Conflicts:
#	Readme.md
#	src/overview/filters/reducer.js
- hasn't changed in months; don't know why this is throwing lint issues just now
poltak and others added 24 commits June 19, 2018 12:36
- consult `search-index-new/storage/types` module for more details about implemented ops
- using `dexie-mongoify` to translate from the MongoDB QL filters to Dexie-compatible stuff
- `findObject`/`findAll` contain an opt. 3rd param to specify some basic pagination options
- this is a very basic implementation, and missing lots of useful stuff, particularly with the find ops, which we should revisit later
- just needed to change `_getDexieSchema` logic to iterate over the `indices` array rather than `fields` object
- also updated tests which were expecting the unindexed fields to be in the output Dexie schemas
- simply recreates the ts, js, css compilation into differenent extension scripts now

Bring over static files copy stage in webpack build

- now it builds a usable extension in <20s :D
- removed the unused `src/update` stuff (we used to show a page on update when we released the big old->new extension update)
- updated all the links to the bundles (now they're in the root of the `extension/` build dir)

Refactor build config into feature module dir

- getting big and messy; refactor to small modules
- updated npm build + watch scripts; old ones have `-old` postfix

Add support for web ext auto-reload on rebuild

Add process.env support to build

Add webpack support for importing images

- svgs included

Esnure external package CSS gets imported

- we use this for slick-carousel in the tutorial and date picker in overview
- slick-carousel was statically copied and brought in via an HTML link before
- date picker was imported directly, but we needed to change from using the css-modules version to standard css

Set up webpack HTML generation

- can keep slimming down the stuff manually linked inside the HTML until no need for the separate templates

Move to a single HTML template to generate from

- generated for popup and options scripts only

Remove clean webpack plugin

- not much need I think; subsequent builds just overwrite old and there's no hashing or anything needed since we're a web ext

Differentiate dev and prod source map generation

- so many different options to pick from: https://webpack.js.org/configuration/devtool/
- this one for dev seems to be fairly fast (<20s initial build, 1-3s inc. builds)
- may change the prod ones as we only need them to upload to sentry apparently

Misc. build optimizations

- followed these docs for a few helpers https://webpack.js.org/guides/build-performance/

Implement multi-thread JS/TS compile + better caching

- will run multiple babel/ts-loader instances to compile our code-base. # of threads will be your # of CPUs - 1
- intermediate module caching now done via HardSourcePlugin (greatly speeds up subsequent builds; ~6s now for me)

Run fork TS checker plugin synchronously

- default is async, but when your typechecking is much faster than your compilation, it's recommended to run sync for better accuracy: https://github.com/Realytics/fork-ts-checker-webpack-plugin#options
- no noticable perf issues
- also add npm scripts for manual cache clearing + bundle stats

Disable webext reload plugin due to perf issues

- added 2-4s onto each incremental build; these are the most important build times IMO
- may raise issue upstream or look into code to find out why (something to do with the reload?)

Set up automated asset linking in generated HTML

Set up TS+JS+CSS linting in build and npm script

- updated versions, made sure everything passes, moved configs to JS files for more flexibility
- set up parallel `lint` npm script and ensured other linters all have scripts
- set up webpack build to do linting

Add optional support for OS build notifs

- I really find this useful; non-default `watch:notifs` script though, as some people may find it very annoying

Remove caching from prod build

Fix broken test

- no idea how this broke :/ the import was wrong, so not sure why it was passing before

Set up CI specific build

- linters disabled (they are run separately)
- no multi-threaded JS/TS loaders (TS plugin still runs on separate thread; not sure if 1 extra thread is an issue)

Ensure gulp build unchanged

- some issue with how I changed things to work with webpack build
- moved slick CSS stuff back to HTML <link>s
- added loader for vanilla CSS from node_modules (prev using webpack loaders in import)

Fix shadowed var name regression in imports data-sources

- some how this broke; still unsure how
- broken in both old and new build
- simply changing the var name (dirNode was also defined in the outter scope) fixed this

Remove sourcemaps from CI build

Ensure redux devtools still works

- updated versions as well
- Installed `babel-polyfill` to polyfill async/await.
- Changed getURL function to support the lack of browser.extension API.

# Conflicts:
#	yarn.lock
- Also, few new design changes.
@poltak
Copy link
Copy Markdown
Member Author

poltak commented Jun 21, 2018

First time I saw the tooltip redesign this morning. Looks amazing!

Some minor things I noticed this morning:

  1. react setState dev mode error being thrown from TooltipContainer when you press the "x" to close the tooltip. Reproduces for me on all sites I've tried.
    Some specific examples: this PR page, http://dexie.org/docs/Tutorial/

screen shot 2018-06-21 at 11 30 08

  1. There's a stray console.log in the content script that gets fired every time you create a link. We should double check for any console.log/warn/error calls in content scripts

screen shot 2018-06-21 at 11 34 40

@blackforestboi
Copy link
Copy Markdown
Member

Just gave it a test and a small thing I saw:

  1. Is it possible to make the tooltip appear before the page has fully loaded? Otherwise people (at least to me it happened multiple times) would intuitively expect the tooltip to load once a piece of text is highlighted.

@blackforestboi blackforestboi merged commit 774952c into master Jun 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants