Граф коммитов

360 Коммитов

Автор SHA1 Сообщение Дата
Cameron Dawson 3267f191bb
Bug 1056865 - Add support for custom env file in Vagrant that is ignored by git (#4857) 2019-04-04 12:18:48 -07:00
Ed Morley 6945c4c471
Bug 1165259 - Add infrastructure documentation (#4766)
- Adds a new "infrastructure" section to the docs, which describes
  architecture, administration and troubleshooting (fixes bug 1165259).
- Adds code comments to any deployment-related files in the repository.
- Adds documentation for the various ways in which users can access
  Treeherder data (fixes bug 1335172).
- Reorganises the structure of some of the existing non-infrastructure
  docs, to make the documentation easier to navigate.
2019-03-11 21:39:34 +00:00
Ed Morley 5e729a389f Bug 1530206 - Rename read_pulse_* to pulse_listener_*
To make it clearer that the commands are listening to Pulse, as opposed
to the processing/storing of pulse data that occurs later.
2019-02-27 07:12:33 +00:00
Ed Morley 2961c74a60 Bug 1530206 - Rename store_pulse_resultsets to store_pulse_pushes
Leaving behind the old queue/task for now so that any tasks in it at the
time of deployment can be completed.
2019-02-27 07:12:33 +00:00
Ed Morley cd826ef6d9 Bug 1530206 - Remove the bin/run_* scripts
Since they are out of sync with `Procfile` and long term are best replaced
with one of the solutions in bug 1318020.

The development setup instructions have been updated to stop recommending
gunicorn, since Django's runserver is more appropriate for beginners
(and I'm pretty sure the memory leaks seen previously no longer occur).
2019-02-27 07:12:33 +00:00
Ed Morley d9de41bf4b
Bug 1270157 - Convert the report-only CSP header to the real thing (#4687)
The latest policy used in the report-only header has been working well
on production (the violation reports logged to New Relic are only from
scripts injected by browser addons), so we're ready to start enforcing
the policy by using the real `Content-Security-Policy` header name.

NB: When features are added in the future, PR authors and reviewers will
need to remember to update the policy if needed (for example to add domains
to the `connect-src` directive). The CSP header is not enabled when using
`webpack-dev-server` (it would break dev source maps and react-hot-loader)
so if in doubt test locally (using `yarn build` and serving via Django
runserver) or on prototype first.

See:
https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
2019-02-25 19:47:45 +00:00
Ed Morley 86b7b32fd1 Bug 1527868 - Vagrant/Travis: Remove Elasticsearch server
To ensure the CI and local environments match stage/production (where
Elasticsearch is not configured) and don't run differing code-paths due
to the various `ELASTICSEARCH_URL` conditionals used in auto-classify.

At such time when work on the fuzzy auto-classify matcher continues,
this can be reverted.
2019-02-14 21:10:21 +00:00
Cameron Dawson deb71d65e0 Bug 1364045 - Convert all unit tests to Jest (#4603)
Also remove all Karma support and update the docs to only mention ``Jest``.

One of the test files was testing some AngularJS filters. I converted these
tests to test the equivalent helper functions.
2019-02-12 07:49:50 +00:00
Ed Morley a9aa1d5a27 Bug 1513486 - Remove /runnable_jobs/ API
Since it's only used by the frontend as a fallback for when it cannot
find a non-gzipped version of `runnable-jobs.json`, and enough time has
now passed for all jobs to have that file.
2019-02-08 18:53:58 +00:00
Ed Morley 65287fed30
Bug 1466084 - Docs: Switch to MkDocs and Material theme (#4565)
Switches from Sphinx to MkDocs, since it:
* supports Markdown natively without requiring hacks like `eval_rst`
* validates inline links, ensuring that they are not broken
* has a more pleasant live-reloading dev-server
* supports the nicer looking mkdocs-material theme
* is a third of the size of Sphinx (including deps)

The theme change is now possible since Read the Docs have just started
supporting use of custom themes (previously they would override the theme
and use `readthedocs` theme regardless).
2019-02-06 19:34:08 +00:00
Ed Morley 67e5b540ee
Docs: Update read-only replica GRANTs (#4509)
Generated using the approach documented at the end of the page:
https://treeherder.readthedocs.io/admin.html#direct-database-access

Follow-up to #3613 and #4015.
2019-01-28 12:11:19 +00:00
Ed Morley 2d787000bd Bug 1522101 - Use Prettier to format Markdown 2019-01-23 20:19:04 +00:00
Ed Morley e583700cb1 Bug 1522101 - Use `prettier --check` to validate formatting
Currently Prettier is used via the ESLint integration, which only supports
JS/JSX and not the other filetypes Prettier is able to format.

For now these additional filetypes are excluded by `.prettierignore`
entries, however these will be removed/fixes applied in later commits.
2019-01-23 20:19:04 +00:00
KWierso 608019de94 Bug 1520355 - Update docs/testcases.md (#4462) 2019-01-23 10:57:10 -08:00
Cameron Dawson 5e8377a3ff
Bug 1364045 - Introduce Jest unit tests (#4369) 2018-12-13 08:24:52 -08:00
Ed Morley 3decefed0b
Clean up the location of generated output directories (#4289)
So that their purposes are clearer and it's easier to differentiate
between generated content and files committed to the repository.

* Neutrino build: `build/` -> `.build/`
* Sphinx build: `_build/` -> `.build-docs/`
* Django collectstatic: `treeherder/static/` -> `.django-static/`
2018-11-16 19:18:18 +00:00
Ed Morley 65b7f4ab45
Bug 1507172 - Use Prettier for formatting JS/JSX (#4276)
Since it's more reliable (and strict) at code formatting than ESLint.
We use it via an ESLint plugin, and so disable the style-related AirBnB
preset rules, leaving the AirBnB guide to handle only correctness and
best practices rules.

It's highly encouraged to use an IDE integration or Git commit hook
to run Prettier (or `yarn lint --fix`) automatically. See:
* https://prettier.io/docs/en/editors.html
* https://prettier.io/docs/en/precommit.html

We may consider enabling a git commit hook out of the box (using eg
Husky) in the future, however they have previously been known to
interfere with partial-staging workflows, so would need to test the
fixes they have made for them thoroughly first.

In future PRs we may also want to start formatting JSON/CSS/Markdown
using Prettier too.
2018-11-16 08:28:34 +00:00
Ed Morley 4db0cfa973
Bug 1507406 - ESLint: Enforce more strict import style (#4279)
Imports must now be grouped like so (with newlines between each):

```
// "external" modules
import _ from 'lodash';
import chalk from 'chalk';

// modules from a "parent" directory
import foo from '../foo';
import qux from '../../foo/qux';

// "sibling" modules from the same or a sibling's directory
import bar from './bar';
import baz from './bar/baz';
```

The `import/order` rule has auto-fix support, so any errors can be
resolved using `yarn lint --fix`.

See:
https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/order.md
2018-11-16 08:07:49 +00:00
Ed Morley 565ae4c13e
Bug 1364894 - Upgrade from Neutrino 4 to 9 (#4216)
Neutrino controls our frontend linting, transpilation, source-maps,
testing, dev-server and optimisation of production builds.

Highlights of the upgrade are:

* Major version updates to the individual tools within (such as webpack,
  Babel and ESLint), significantly improving performance, fixing
  transpilation/minification correctness bugs, adding support for newer
  ECMAScript features, and increasing linter coverage.
* Hot reloading in the dev server now works for all entry-points and not
  just the jobs view, shortening the feedback cycle.
* Reduced bundle size due to webpack 4's tree shaking, scope hoisting,
  automatic shared/vendor code chunk splitting (no need for the manually
  maintained 'vendor' list).
* CSS is now extracted out of JS, which improves performance, reduces
  bundle size and prevents the initial white flash of un-styled content.
* Support for dynamic imports/code splitting (needed for bug 1502192).
* Support for Jest via a new Jest preset (unblocks bug 1364045).
* Support for public class field declarations (unblocks bug 1480166).
* Improved source-maps (increases the quality of production exception
  trace-backs and fixes several debugger breakpoint bugs).
* Reduced amount of custom configuration required for our fairly complex
  frontend needs, reducing maintenance burden and allowing for easier
  future Neutrino upgrades.

In addition this PR:

* Fixes the WhiteNoise `immutable_file_test()` regex, so that it now
  correctly enables browser caching of images, fonts and source maps.
* Enables webpack-dev-server's overlay feature, which displays any
  compilation errors in the browser, saving having to switch back
  to the console (this can be enabled for warnings too if desired).
* Enables webpack-dev-server's automatic browser-opening feature,
  which saves having to manually navigate to `localhost:5000` after
  running `yarn start`.
* Switches Karma tests to run Firefox in headless mode, reducing the
  workflow disruption when running `yarn test`.
* Uses the new webpack `performance` option to enable maximum asset
  file size thresholds, to help prevent bundle-size regressions.
* Rewrites the `package.json` script commands so that they now work
  correctly on Windows, even when setting environment variables.

Performance comparison:

* Local `yarn build`:
  - Cached: 2m34s -> 23s
  - Uncached: 2m34s -> 58s
* Local `yarn start`:
  - Cached: 34.5s -> 13.6s
  - Uncached: 34.5s -> 31.3s
* Local `yarn test`
  - Cached: 61.5s -> 19.8s
  - Uncached: 61.5s -> 22.0s
* Local `yarn lint`
  - Cached: 3.8s -> 1.8s
  - Uncached: 13.7s -> 13.4s
* Travis end-to-end time:
  9 minutes -> 6 minutes
* Heroku deploy end-to-end time:
  14 minutes -> 9 minutes
2018-11-02 18:48:28 +00:00
Ed Morley 597bb4146e
Bug 1502306 - Make it easier to run Selenium tests (#4194)
* Enables the display of skipped test/expected fail reasons, in
  the pytest summary.
* Skips the Selenium tests with a clear reason message, unless the
  built UI is found (preventing the annoying/confusing test timeouts).
* Removes the disabling of the `pytest-html` and `pytest-metadata`
  plugins, since they are required when passing the `--html` option
  to generate an HTML report.
* Updates the docs to mention `yarn build` and `--html`.
2018-10-29 17:07:38 +00:00
Sarah Clements 12ff3a64f0
Bug 1166905 - Combine UI and server docs (#4083) 2018-10-09 12:38:30 -07:00
Ed Morley 55cf146ef1
Bug 1281821 - Docs: Correct Pulse environment variable references (#4097)
To account for the changes in #3948.
2018-10-04 12:08:04 +01:00
Ed Morley 445766d958
Bug 1443251 - Remove support for buildbot job ingestion (#4087)
The buildapi celerybeat tasks were disabled previously in #4007, so
these tasks are unused.
2018-10-02 11:07:27 +01:00
Ed Morley ecf4c4e33a
Bug 1349182 - Remove support for submitting jobs via the REST API (#4075)
Now that autophone and AWFY have migrated to Taskcluster, there are
no more submitters of jobs to the REST API (confirmed via New Relic
Insights). As such, this deprecated data ingestion method can now be
removed, along with support for API Hawk auth, API POST throttling
and `treeherder-client` job submission capability.

After this lands we'll need to manually drop the `credentials` table.
2018-09-28 02:17:48 +01:00
Ed Morley ffaa2e4b2a
Bug 1443251 - Remove runnable jobs support for buildbot (#4071)
Runnable jobs for buildbot were calculated via a celerybeat task
(that was disabled in #4007) and the results stored in the
`runnable_jobs` table. This can all be removed now that buildbot is
EOL, since the remaining support for Taskcluster runnable jobs does
not use that celery task/Django model.
2018-09-27 19:15:47 +01:00
Sarah Clements feb12ac6af
Ui documentation update
Add info on javascript and css libraries in code style section of docs.
2018-09-17 20:03:06 -07:00
George Hickman 0c84435659 Convert the Pulse Job configuration into a list of strings 2018-08-28 14:01:49 +01:00
George Hickman 425350fb2b Bug 1281821 - Convert Pulse push configuration into a list
We don't currently change the push ingestion sources in any of our envs
(prod, staging, prototype, test, dev) from their defaults.  This
hardcodes those unchanging values and documents where to change them
should an engineer need to.
2018-08-24 10:46:06 +01:00
George Hickman 078133f906
Remove the pulse destinations configuration (#3931)
They don't provide much benefit as per:
https://github.com/mozilla/treeherder/pull/3863#discussion_r207983587
2018-08-23 18:55:33 +01:00
Ed Morley 3da4738649
Revert "Remove the pulse destinations configuration" (#3927)
This reverts commit 1728dd306c (#3884), due to:

```
Pulse warning: queue "queue/treeherder-staging/jobs" is overgrowing

Warning: your queue "queue/treeherder-staging/jobs" on exchange "could not be determined" is
overgrowing (4083 ready messages, 4083 total messages).
...
```
2018-08-15 21:00:00 +02:00
George Hickman 1728dd306c Remove the pulse destinations configuration
They don't provide much benefit as per:
https://github.com/mozilla/treeherder/pull/3863#discussion_r207983587
2018-08-15 19:04:59 +01:00
George Hickman fb99e98c4f Bug 1281821 - Split PULSE_DATA_INGESTION_SOURCES into three separate settings 2018-08-07 09:51:40 +01:00
George Hickman 6e7b1efac3 Bug 1281821 - Rename PULSE_URI -> PULSE_URL to match other config vars 2018-08-07 09:51:40 +01:00
George Hickman cc4bfa47f6 Bug 1281821 - Use PULSE_URI instead of PULSE_DATA_INGESTION_CONFIG 2018-08-07 09:51:40 +01:00
George Hickman ca2f8515a3 Bug 1069249 - Explain how to view DB inside a Vagrant VM 2018-08-01 12:30:42 +01:00
Ed Morley eeff0a6fb4 Bug 1466084 - Docs: Convert markup from reST to markdown
Markdown guide for reference:
https://daringfireball.net/projects/markdown/syntax

For the existing Sphinx `.. note::`s, there isn't an exact equivalent
until we switch to mkdocs (which has the `Admonition` extension), so
I've left as reStructuredText and wrapped them with an `eval_rst`
code block for now, rather than switching to HTML. See:
https://recommonmark.readthedocs.io/en/latest/auto_structify.html#embed-restructuredtext
2018-07-30 20:49:01 +02:00
Ed Morley 71c1124784 Bug 1466084 - Docs: Change file extensions from .rst to .md
Renaming as a separate commit since otherwise Git was struggling to
identify the renames, making the diff harder to review.

`index.rst` has been left unchanged, since we still want to use the
`toctree` directive for now.
2018-07-30 20:49:01 +02:00
Ed Morley 33f0464101 Bug 1466084 - Docs: Add Sphinx markdown support
We want to switch from reStructuredText to Markdown, since:
* it's more user-friendly
* it is used in multiple places on GitHub, so people are more familiar
  with it / context switching between the two is annoying
* the disadvantages of markdown typically raised as reasons to prefer
  reST either don't apply to our use-case, or are no longer accurate
  with recent tooling/extensions
* switching means we can also later start using mkdocs (which doesn't
  support reST) instead of Sphinx. That change has been kept separate
  to reduce the size of the PR, and to make the comparison between
  the two more fair.

See:
https://docs.readthedocs.io/en/latest/getting_started.html#in-markdown
https://recommonmark.readthedocs.io/en/latest/index.html
2018-07-30 20:49:01 +02:00
Ed Morley 7f5e7c0643 Bug 1478711 - Docs: Fix SETA typos 2018-07-26 18:24:57 +02:00
Ed Morley bcffd1ce3e Bug 1478711 - Docs: Correct out of date UI testing advice
* The tests can now be run inside the VM.
* There is no longer a coverage report output.
2018-07-26 18:24:57 +02:00
Ed Morley 78c2c57fc9 Bug 1478711 - Docs: Fix navigation links
Previously the mixture of heading types was confusing the RTD theme,
causing the navigation sidebar to display at the top level not just
the page links, but links to subsections within those pages too.
The subsection names taken out of context were pretty confusing,
making it hard to navigate the docs.
2018-07-26 18:24:57 +02:00
Ed Morley 6419d2b61c
Bug 1421327 - Docs: Remove out of date/redundant pages (#3834)
The architecture pages are significantly out of date and so have
been removed until such time as new ones are created (this will be
simpler once Buildbot/REST API support is removed later this year).

In addition, the deployment page duplicated the UI installation page.
2018-07-26 17:43:23 +02:00
George Hickman 1cce79f59b Move docs Makefile up to project root and build docs there 2018-07-23 12:58:04 +01:00
Cameron Dawson 15721f009c
Bug 1450022 - Convert the rest of Details Panel to ReactJS (#3621) 2018-06-13 15:40:38 -07:00
Ed Morley 70e9cdc91d
Bug 1420941 - Docs: Encourage users to run Vagrant provision (#3539)
The `--provision` flag is unnecessary for new instances, since Vagrant
runs `provision` as part of the initial `up` regardless. However by
including `--provision` in the suggested command, it will mean
returning contributors will re-run provision when they re-use the
same steps.

An alternative approach would be to mark the provision block in
`Vagrantfile` as `run: "always"`, however that would slow down the
`vagrant up` of core developers too (by 40s), with no way to opt-out.
2018-05-14 11:04:17 +01:00
Ed Morley 55654a1195
Bug 1363722 - Allow login to work in all development workflows (#3534)
Previously it was not possible to test features that required an
authenticated user when:
* using `yarn start` with Vagrant (bug 1363722), which meant slower
  watch builds
* pointing the UI at the prod/stage API (bug 1317752), which was
  extremely limiting

Now login works in all environments, since the frontend no longer uses a
URL prefix, but instead webpack-dev-server proxies non-webpack URLs to
the chosen `BACKEND_DOMAIN` - avoiding cross-domain issues. Cookies are
rewritten to remove any `secure` directive (which is set on production),
so that they can still be read from HTTP localhost. The `Referer` has to
also be changed to stop Django's CSRF checks from rejecting request.

The slower "build into `dist` and watch" mode is therefore no longer
necessary, so `yarn start:local` instead invokes webpack-dev-server just
like `yarn start` - and the `local-watch.js` workaround has been
removed.

Support for the "publish to GitHub with hardcoded `SERVICE_DOMAIN`"
workflow has been dropped, since it was already rarely used and there is
no way to make it support login.

The API domain environment variable was renamed to `BACKEND_DOMAIN` to
avoid potential confusion given it no longer behaves the same as
`SERVICE_DOMAIN` used to.

NB: For full stack Vagrant workflows users must now connect to port
*5000* on localhost, not 8000.
2018-05-10 17:58:04 +01:00
Cameron Dawson 454cde322d
Bug 1330702 - Improve the Pulse ingestion docs (#3377) 2018-04-03 17:07:07 -07:00
Ed Morley bd870cf8ce
Bug 1441493 - Use rel="noopener" for all target != null links (#3275)
This helps prevent:
https://www.owasp.org/index.php/Reverse_Tabnabbing

We're not also using `noreferrer`, since most browsers now support
`noopener` (https://caniuse.com/#search=noopener) and the link targets
are all Mozilla properties where the referrer may be useful.

The auth.js `window.open()` has not been changed, since the login
callback makes use of `window.opener`.
2018-02-27 19:17:42 +00:00
ionutgoldan bab66d8066 Bug 1428032 - Docs: Grant visibility for new issue_tracker table (#3266) 2018-02-26 11:00:41 +00:00
Ed Morley 0aec43a139
Bug 1357476 - Replace django-rest-swagger with native d-r-f docs (#3230)
Now that django-rest-framework supports interactive docs natively,
we no longer need to use the additional django-rest-swagger package:
http://www.django-rest-framework.org/topics/3.6-announcement/#interactive-api-documentation
http://www.django-rest-framework.org/topics/documenting-your-api/

This significantly reduces the number of static files that have to
be processed, reducing the time taken for `collectstatic` (which is
run on every deployment and takes a while due to Brotli compression)
by 70%.
2018-02-16 10:21:21 +00:00
Jonathan French 7247ea20b7 Bug 1429988 - Minor updates for local pulse ingestion 2018-02-13 09:23:19 -08:00
Ed Morley 0397e82f0e
Bug 1435998 - Fix/enable eslint 'strict' (#3198)
With ES6, the `'use strict'` directives are unnecessary:
https://eslint.org/docs/rules/strict

The directives have been left in the Neutrino configs, since they
are used by node directly, which doesn't yet support ES6 modules.
2018-02-12 16:51:36 +00:00
Ed Morley 9ef378f043
Bug 1433011 - Remove UI for requesting/managing Hawk credentials (#3166)
Since REST API data submission is deprecated in favour of Pulse.
The credentials app now only contains the model and migration.
2018-01-30 23:37:42 +00:00
Ed Morley f74e37f7a9 Bug 1434307 - Docs: Fix `REQUIRE SSL` SQL deprecation warnings
Now that we're using MySQL 5.7, we can specify `REQUIRE SSL` on the
`CREATE USER` statement, rather than having to do so on the individual
GRANTs. Compare:
https://dev.mysql.com/doc/refman/5.6/en/create-user.html
https://dev.mysql.com/doc/refman/5.7/en/create-user.html

Prevents:
```
1 warning(s): 1287 Using GRANT statement to modify existing user's
properties other than privileges is deprecated and will be removed
in future release. Use ALTER USER statement for this operation.
```
2018-01-30 16:49:14 +00:00
Ed Morley 925ea48229 Bug 1434307 - Docs: Update read-only replica GRANTs
Generated using the approach documented at the end of the page:
https://treeherder.readthedocs.io/admin.html#direct-database-access

The changes are required since bug 1373008 added the `group` and
`group_failure_lines` tables and #2532 removed `text_log_summary`
and `text_log_summary_line`.
2018-01-30 16:49:14 +00:00
Ed Morley bc0ca97102
Bug 1419965 - Remove the estimated job time remaining backend (#2990)
The UI has already been removed. This cleans up the data ingestion
and removes the `JobDuration` model, however leaves the `running_eta`
field on the `Job` model for the next time that table is touched (since
the table is large, so altering the schema would likely require
downtime).
2017-12-04 22:09:38 +00:00
Ed Morley 1e2ce7fd23
Bug 1419168 - Add a .gitattributes file to force Linux line endings (#2997)
This prevents `$'\r': command not found` bash errors caused by CRLFs
when Windows hosts have suboptimal global Git configurations, meaning
one less thing that can go wrong / that needs documenting.

See:
https://help.github.com/articles/dealing-with-line-endings/
https://git-scm.com/docs/gitattributes
https://github.com/alexkaratarakis/gitattributes/blob/master/Web.gitattributes
2017-11-28 21:51:59 +00:00
Ed Morley 331a39bff2 Bug 1421241 - Docs: Add livehtml to the Makefile help text 2017-11-28 16:56:45 +00:00
Ed Morley 8b6743456e Bug 1413975 - Docs: Remove redundant configuration from conf.py
Most of the existing config (generated by `sphinx-quickstart`) was
either commented out, identical to the defaults or else for build
modes we do not use - and only end up making the config hard to read.
2017-11-28 16:56:45 +00:00
Ed Morley 644b0d900f Bug 1413975 - Docs: Disable unused Sphinx extensions
This means less to both install and run at build time, hopefully
speeding up the build and reducing the chance of races/locking issues.
2017-11-28 16:56:45 +00:00
Ed Morley f16d33efba Bug 1366043 - Docs: Remove misleading version of 'prototype'
Since otherwise the page titles contain the word 'prototype':
`- Treeherder prototype documentation`
2017-11-28 16:56:45 +00:00
Ed Morley 86e1402369 Bug 1421241 - Docs: Improve error shown when Sphinx not installed 2017-11-28 16:56:45 +00:00
Ed Morley 194e3e3be5 Bug 1421241 - Docs: Improve livehtml mode and recommend it
* Removes the unnecessary initial `make html`, since sphinx-autobuild
performs the initial build itself.
* Enables `--poll` watch mode, since file change detection otherwise
doesn't work in Vagrant.
* Updates the docs to recommend the livereload web server over the
one-off build when working on docs locally.
2017-11-28 16:56:45 +00:00
Ed Morley 607007d7e8 Bug 1421241 - Docs: Reduce nesting of build output directory
Since there is only ever one build type, so the nested directory is
unnecessary and makes it more annoying to find the built assets.
2017-11-28 16:56:45 +00:00
Ed Morley b7e6db1f94 Bug 1421241 - Docs: Remove unused Makefile targets
We don't use any of the other build modes:
http://www.sphinx-doc.org/en/stable/builders.html#builders
2017-11-28 16:56:45 +00:00
Ed Morley c02da51d84 Bug 1420891 - Docs: Fix broken or redirecting links
As found by running `make -C docs linkcheck`.
2017-11-28 16:56:45 +00:00
Ed Morley 7bca4d8e97 Bug 1420891 - Docs: Enable strict & 'nit-picky' mode when building
So that the build fails if there are any warnings:
http://www.sphinx-doc.org/en/stable/invocation.html#invocation-of-sphinx-build
2017-11-28 16:56:45 +00:00
Ed Morley 269bc37aff Bug 1420891 - Docs: Fix strict mode warnings
The build previously contained warnings like:
```
docs/rest_api.rst:144: WARNING: Title underline too short.
docs/admin.rst:18: WARNING: Could not lex literal_block as "sql". Highlighting skipped.
WARNING: html_static_path entry u'.../docs/_static' does not exist
```
2017-11-28 16:56:45 +00:00
Ed Morley f7f38ef4d0
Bug 1257602 - Remove support for revision_hash (#2983)
Now that no submissions are using revision_hash, it can be removed.
This removes everything but the model field, which will be handled
later.

I've removed revision_hash from the Pulse jobs schema without bumping
the version, which wouldn't normally be ok, but no one is still using
it, and I'd rather have explicit failures later than if we left the
schema unchanged.
2017-11-28 00:09:17 +00:00
Ed Morley 626edb59ad
Bug 1419167 - Vagrant: Remove unnecessary MSYS SSH pre-requisite (#2966)
Since recent Vagrant now bundles its own SSH client.
2017-11-20 22:54:18 +00:00
Ed Morley 3f5ef6b352 Bug 1418956 - Set yarn's no-bin-links option via .yarnrc
To save having to pass it each time when using `yarn {install,add}`.
2017-11-20 18:59:26 +00:00
Ed Morley 5d1b99fa79 Bug 1416257 - Docs: Clarify which node/yarn version should be used
Since for people installing node/yarn on their own (outside the
Vagrant environment) it can be confusing to work out which version is
appropriate, given node always has both an LTS and current release.
2017-11-20 18:59:26 +00:00
Ed Morley b472a63176 Bug 1416257 - Docs: Remove unnecessary `yarn install` steps
The vagrant provision runs `yarn install`, so it isn't necessary to
do so again before running `yarn start`.
2017-11-20 18:59:26 +00:00
Dave Hunt 1319f57c55
Rename py.test to pytest #dropthedot 2017-11-09 12:55:25 +00:00
Dave Hunt 9fd3c72241
Bug 1340305 - Allow Selenium tests to be run locally 2017-11-09 12:55:25 +00:00
Jonathan French f0940ec37d Bug 1410230 - Tweak the pinboard testcase wording (#2857) 2017-10-19 22:55:29 +02:00
Kiki 070a94d16b Bug 1407367 - Update doc that ui unit tests are not to be run within a VM 2017-10-13 09:43:40 -07:00
Cameron Dawson a250d1dcb6 Bug 1400069 - Replace term coalesced with superseded in most places
Except where it has to touch the database field, since that will be
vestigial in a later commit and removed in a alter PR.
2017-09-29 17:18:42 -07:00
Cameron Dawson 863f772a8b Bug 1387640 - Remove Exclusion Profiles models/tables
Removes all the models and tables for the ExclusionProfile and
JobExclusion models and related.
2017-09-18 09:28:22 -07:00
Cameron Dawson bde8e20f1f Bug 1387640 - Stop using exclusion profiles
Note: This leaves the models and tables intact so that we can
revert without data loss in case we discover an issue.  A follow-up
commit will remove those tables and models.
2017-09-13 09:05:25 -07:00
Cameron Dawson 83c94d9cae Bug 1398386 - Remove exclusion editor admin panel 2017-09-12 12:25:29 -07:00
Armen Zambrano b72b8c5096 Improve SETA maintenance documentation (#2757)
The maintenance section was not addressing that data can take a while before the different scheduled processes bring the data into the right tables.

This addresses documenting how to:

* Update the runnable jobs table
* Update the job priority table
2017-09-06 19:18:32 +01:00
Armen Zambrano G 5ddd7bfad7 Bug 1395162 - Document how to change jobs priorities and remove expiration date 2017-08-30 13:57:23 -04:00
Armen Zambrano G 63a6692e71 Bug 1388862 - Management command to initialize SETA locally
This populates the job priority table with data locally.

It puts all jobs into the table without considerations of analyzing failures.
That can follow up in the future.

Update docs accordingly.
2017-08-11 09:40:07 -04:00
Max Chehab c6e0c26bc8 Bug 1336272 - Refactor changing wording from resultset to push (#2644)
Change of new environment variable `PULSE_PUSH_SOURCES`.

Keep old `publish-resultset-runnable-job-action` task name by creating a 
method that points to `publish_push_runnable_job_action`.
2017-08-04 09:38:57 -07:00
William Lachance 5cb5046e41 `yarn run foo` -> `yarn foo` (#2597)
The run is redundant.
2017-06-29 11:32:54 -07:00
Ed Morley 4735e9d434 Bug 1362443 - Vagrant: Replace varnish with iptables rule
By default webservers like Django's runserver, gunicorn or the
Webpack devserver only bind to the loopback adapter (127.0.0.1) and
so are not accessible from outside the Vagrant / virtualbox VM,
since port forwarding only forwards traffic to the non-loopback
adapters.

Previously varnish (which listened on `0.0.0.0`) was reverse
proxying traffic to runserver/gunicorn, however we need to now do so
for webpack-dev-server on another port too. Doing both with varnish
adds complexity, and we don't actually need any of varnish's other
features, so ideally want to stop using it.

Rather than having to override each webserver to bind to all
adapters (using the IP `0.0.0.0`), it's possible to forward traffic
to the loopback adapter using iptables NAT PREROUTING rules. This
is still secure so long as the Vagrantfile port forwarding uses a
`host_ip` of `127.0.0.1`. To prevent this "Martian packet" traffic
from being blocked, `route_localnet` must also be set to `1`. See:
https://unix.stackexchange.com/questions/111433/iptables-redirect-outside-requests-to-127-0-0-1

By default neither sysctl or iptables settings are persisted across
reboots, and fixing that requires more complexity (eg installing the
iptables-persistent package and handling config changes during
provision). As such, it's just easier to re-run the commands on each
login since they take <30ms.
2017-05-06 17:32:41 +01:00
Ed Morley f422a02730 Bug 1168117 - Remove support for defining the API URL via local.conf.js
Previously a forgotten-about `local.conf.js` (which is git-ignored)
would override the URL passed by the `SERVICE_URL` environment variable.

With webpack and environment variables, there is no need to use a local
config file to control the API URL, so we can now remove this footgun.
2017-04-28 00:44:24 +01:00
Ed Morley 55650d582d Bug 1306844 - Remove support for submitting pushes via the REST API
This endpoint is deprecated in favour of Pulse submissions, and is no
longer being used.
2017-04-24 10:50:31 +01:00
Ed Morley 589817d6b0 Bug 1357970 - Remove the artifact REST endpoint
Artifacts no longer exist (they've been replaced by more specific types
like "jobdetails"), and so fetching from this endpoint has been disabled
for some time already.

For data submission, we still call them artifacts (and sort their type
after submission), however all artifacts are currently submitted at the
same time as the job, so this endpoint is unused.
2017-04-20 22:52:58 +01:00
Ed Morley a3eb8b5313 Bug 1353807 - Remove celerybeat-schedule during provision
Since it saves having to document the troubleshooting step.
2017-04-19 00:49:15 +01:00
Dave Hunt ac4111128b Moved the methods of submitting data beneath the top level heading (#2327)
* Moved the methods of submitting data beneath the top level heading

* Replace 'github' and 'Github' with 'GitHub' in documentation
2017-04-07 09:18:26 -07:00
camd dd0f01687c Bug 1352184 - Document adding a Github repo to Treeherder (#2304) 2017-04-04 15:23:03 -07:00
Casey Williams 5a1c8c6af3 Bug 1336556 - Add a standalone eslint task
Installs eslint explicitly to avoid warning messages on initial
node_modules install.  Adds a standalone eslint task via `yarn run
lint`.
2017-03-29 22:07:24 +01:00
Casey Williams afa7d63d1d Bug 1336556 - Replace grunt build system with neutrino/webpack 2017-03-29 22:07:24 +01:00
Ed Morley f4b37c026b Bug 1348375 - Stop using a wildcard import in treeherder.client
This import only affects internal treeherder usage, people using the
PyPI package import from the `thclient` subdirectory instead.

Fixes:

treeherder/client/__init__.py:1:1: F401 '.thclient.*' imported but unused
2017-03-20 13:18:20 +00:00
Ed Morley 51c386ee21 Bug 1343928 - Switch from npm to yarn
Since it's faster, deterministic and doesn't given obscure errors when
using `--no-bin-links` (which is required for both npm and yarn on
Windows hosts), and as such unblocks the work in bug 1343624.

Many of the commands are the same as with npm. See:
https://yarnpkg.com/en/docs/usage
2017-03-13 15:27:46 +00:00
Ed Morley 7b533c6b68 Bug 1343624 - Use `npm test` alias instead of old Karma wrapper scripts
The `test` script entry in `package.json` (used by `npm test`) already
calls karma with the appropriate parameters, so the helper scripts are
unnecessary.
2017-03-13 15:27:46 +00:00
Ed Morley 245696ef53 Bug 1343624 - Add `npm run lint` as an alias of `grunt checkjs`
For the same reason as the previous commit.

Ideally we'd remove the grunt abstraction entirely and call eslint from
the `lint` command, but we might as well save that to the Neutrino PR.
2017-03-13 15:27:46 +00:00
Ed Morley 21abe6ed75 Bug 1343624 - Add `npm run build` as an alias of `grunt build`
Routing commands via npm/yarn is preferred, since it avoids
having to do global installs of grunt-cli, which simplifies contributor
setup, and means less effort when we switch to Yarn (since it requires
manual PATH setup for globally installed packages).
2017-03-13 15:27:46 +00:00