1. 09 Nov, 2020 8 commits
  2. 06 Nov, 2020 2 commits
  3. 05 Nov, 2020 3 commits
    • Robert Knight's avatar
      Remove ES 2015 and ES 2016 polyfill sets · f17f6901
      Robert Knight authored
      All of the browsers we currently support, as specified by the
      `browserslist` key in package.json, fully support ES 2015 and ES 2016.
      
      The only exception I'm aware of is that Edge Legacy v17 and v18 do not
      support using string regex search/match methods with custom (non-regex)
      types via `Symbol.{match, search, replace}`. That's not something we've
      ever used AFAIK.
      f17f6901
    • Robert Knight's avatar
      Replace `build/manifest.json` make target with `make build` · 9d89ffc9
      Robert Knight authored
      `make build` is a more obvious name for a command that creates a
      production build of the client. It also resolves an issue that `make
      build/manifest.json` did nothing if `node_modules/` was up to date but
      other dependencies had changed.
      9d89ffc9
    • Robert Knight's avatar
      Avoid creating unnecessary production build when running `make dev` · 20b558f4
      Robert Knight authored
      `make dev` would unnecessarily create a production build before starting
      the development server if `package.json` or `yarn.lock` had been touched
      since the previous run of `make dev`. This was happening because `make dev`
      had a dependency on `build/manifest.json`, which triggers a production
      build, rather than `node_modules/.uptodate`, which just runs `yarn
      install`. I can't remember the historical reason why it was this way, but it
      doesn't make sense any more.
      
      Fix this by changing `make dev` to only depend on `node_modules/` being
      up to date before starting the dev server.
      20b558f4
  4. 04 Nov, 2020 1 commit
    • Robert Knight's avatar
      Replace babel-plugin-angularjs-annotate with babel-plugin-inject-args · cacdd635
      Robert Knight authored
      It is confusing to have a Babel plugin with an Angular-related name and
      Angular-sounding annotations (`@ngInject`) in the code, even though
      we're not using AngularJS. Although we're not using AngularJS any more,
      we still have services that are instantiated by a dependency injection
      container.  The container reads dependency names from a `$inject`
      property on service functions/classes. This `$inject` property is added
      by `babel-plugin-angularjs-annotate`.
      
      This commit replaces the `angularjs-annotate` Babel plugin with one
      maintained by us [1]. The new plugin provides only the functionality that we
      need (eg. only processes explicitly annotated functions) and uses a more generic
      `@inject` annotation.
      
      [1] https://github.com/hypothesis/babel-plugin-inject-args
      cacdd635
  5. 03 Nov, 2020 3 commits
  6. 02 Nov, 2020 6 commits
  7. 30 Oct, 2020 5 commits
  8. 29 Oct, 2020 2 commits
  9. 27 Oct, 2020 9 commits
  10. 23 Oct, 2020 1 commit
    • Robert Knight's avatar
      Attempt to fix prod deploy failure after concurrent builds · 0704e124
      Robert Knight authored
      Attempt to fix a prod deployment failure when initial build step happens
      in a different workspace directory than the prod deploy step.
      
      This typically happens when two or more builds are in progress concurrently
      and then all of the earlier builds finish before the last one is
      deployed. In this scenario the initial build step happens in a directory
      such as `master@2` whereas the prod deploy step will happen in a
      directory named `master`. The prod deploy step assumed that the
      workspace was still `master@2` and git commands would fail because the
      directory no longer existed.
      0704e124