- 23 Oct, 2018 2 commits
-
-
Robert Knight authored
The `seek` function from the `dom-seek` package expects its `NodeIterator` argument to have a `referenceNode` property, which is missing in IE 11. Use the dom-node-iterator package recommended by the dom-seek README [1] to polyfill optional-ness of arguments to `document.createNodeIterator` and the missing properties on the returned `NodeIterator` object. dom-node-iterator provides several ways to use the polyfill. This commit uses the method that prefers the browser's native implementation if possible and does not pollute the global scope, which could affect JS code outside of the Hypothesis client. There is one other place where we use `createNodeIterator` but in that context the missing properties are not used so the polyfill is not needed. Fixes #762 [1] https://github.com/tilgovi/dom-seek/blob/master/README.md
-
Robert Knight authored
Fix "Log in" links in sidebar content area not opening login prompt.
-
- 22 Oct, 2018 5 commits
-
-
Hannah Stepanek authored
The loggedout-message controller should bind onLogin. The sidebar-content controller should also bind onLogin and call vm.login(). Prevously this behavior was broken.
-
jenkins-hypothesis authored
-
Robert Knight authored
Fix IE 11 JS error which annotating PDFs.
-
Robert Knight authored
Skip builds of automated commits on Jenkins
-
Sheetal Umesh Kumar authored
The `whatToShow`, `filter` and `expandEntityReferences` arguments for `Document.createNodeIterator()` are mandatory in IE although optional according to the spec. Pass default values to fix JS console errors. See: https://github.com/hypothesis/client/issues/762
-
- 19 Oct, 2018 5 commits
-
-
Robert Knight authored
As part of the deployment process Jenkins creates a new commit on master in order to bump the npm package version. There is no point in creating an automated build of these commits, which can be identified by the commiter name.
-
jenkins-hypothesis authored
-
Robert Knight authored
Move remaining client release steps to Jenkins
-
Robert Knight authored
-
Robert Knight authored
When performing a Jenkins CI build of the "master" branch, prompt the user to deploy and then after they approve, execute the same release process that a developer currently executes on their machine, namely: 1. Update the changelog 2. Run "yarn version" to update the package version, create a tag and GitHub release. After these steps the release process continues on Jenkins as before, with an npm package published and the build deployed to an S3-backed CDN using the s3-npm-publish tool. Enabling publishing the release entirely from Jenkins required some additional changes: - Use a Debian Stretch-based Node container, to get a newer Git version which supports "taggerdate", used by the changelog scripts. - Disable Git tag signing, since this is not set up on Jenkins. - Do not run "make test" from the preversion script, since this has already been run by Jenkins earlier in the process. Additionally to facilitate testing of this branch I added support for specifying a prerelease version suffix. This made it possible to test the whole deployment process without updating the live version of the client. In future this will likely come in useful for doing staging/QA releases.
-
- 18 Oct, 2018 1 commit
-
-
Robert Knight authored
Modify `update-changelog.js` to generate the list of changes itself
-
- 17 Oct, 2018 5 commits
-
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Wrap "stage" contents in a block in Jenkinsfile
-
Robert Knight authored
This fixes a warning from Jenkins that using `stage` without specifying a block is deprecated.
-
Robert Knight authored
In preparation for executing the client release process entirely on Jenkins, make update-changelog.js automatically update CHANGELOG.md with a list of changes since the most recent tag, instead of requiring a developer to do this manually. This will lose the advantages of having a changelog written by humans, but we primarily use other channels nowadays to notify staff and users about Hypothesis product changes. - Add scripts/generate-change-list.js which generates a nicely formatted list of changes since the last release. - Use functions from generate-change-list.js to auto-populate section for new release in CHANGELOG.md when running `yarn version`.
-
- 09 Oct, 2018 7 commits
-
-
Robert Knight authored
Update API route definitions used by tests
-
Robert Knight authored
- Update the API index definitions used by the tests for the `api` service to be in sync with the actual index returned by https://hypothes.is/api/. - Move the definitions into a separate file to make them easier to update in future and add instructions on how to update them. - Fix two errors in the tests; use of "PUT" instead of "PATCH" for updating an annotation and an incorrect parameter name in the API call to remove a group member.
-
Robert Knight authored
Support serving the client over SSL in development
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Use custom name for global `require` function
-
Robert Knight authored
-
- 08 Oct, 2018 1 commit
-
-
Robert Knight authored
Following the conventions of the "h" project [1], the client's asset server (localhost:3001) and demo page server (localhost:3000) will be served over SSL if a certificate (".tlscert.pem") and private key (".tlskey.pem") are found in the root of the repository. This can be useful for testing the development client on pages served over SSL without having to disable mixed content warnings in the browser. [1] https://h.readthedocs.io/en/latest/developing/ssl/
-
- 29 Sep, 2018 1 commit
-
-
Robert Knight authored
Browserify bundles that make their modules available for other bundles to consume define a global `require` function. This is then imported by other bundles and used to resolve module lookups. This `require` name can clash with web pages that use eg. `RequireJS`. Most of the time this isn't a problem because all of the page's own code has run by the time Hypothesis loads. If however the page loads additional scripts after Hypothesis has been loaded, they will end up finding Hypothesis's `require` instead of their own. This commit resolves the issue by renaming the global `require` function to `hypothesisRequire` in two steps: - The `externalRequireName` Browserify option changes the _exported_ name. - A custom transform stream post-processes the Browserify bundle code to change the _imported_ name, since Browserify doesn't have an option for this itself. A small fix was needed to the `boot.js` script build to avoid stripping lines _after_ the sourcemap URL comment, instead of just that comment. Fixes #779
-
- 24 Sep, 2018 3 commits
-
-
Robert Knight authored
-
Robert Knight authored
Fix leaving a group from the client
-
Robert Knight authored
https://github.com/hypothesis/h/commit/46e4bbadc991d550ca9706b5237e35d68675a6cc made a breaking change to the public API of the endpoint for removing the current user from a group by renaming the "user" path parameter to "userid". Given that this change has been out for some time, I have opted to fix the client rather than revert the change in the service. Fixes #774
-
- 18 Sep, 2018 3 commits
-
-
Dave Wolfe authored
-
Dave Wolfe authored
-
Robert Knight authored
Update core-js
-
- 17 Sep, 2018 1 commit
-
-
Dave Wolfe authored
Add aria label to share button in client menu
-
- 14 Sep, 2018 6 commits
-
-
Dave Wolfe authored
In addition to adding the label, this changes the <a> to a <button> as well. Fixes https://github.com/hypothesis/product-backlog/issues/780
-
Robert Knight authored
-
Robert Knight authored
-
Robert Knight authored
Fetch config via postMessage RPC if `requestConfigFromFrame` is set
-
Robert Knight authored
This causes the client to fetch settings from an ancestor frame on startup if necessary.
-
Robert Knight authored
Implement `fetchConfig` function which fetches config from the host page / embedding web app and merges it with config rendered into the sidebar HTML page. This function supports a new method of fetching config from the embedder by performing a "requestSidebarConfig" RPC call to the origin set with the "requestSidebarConfigFromFrameWithOrigin" setting. That setting must itself by set in the page where the embed.js script is loaded. Also extract the `assertPromiseIsRejected` helper into `promise-util.js` for re-use and add a note about needing to return the result.
-