* Configuration for black
* changes congiguration
* change pyproject's directory
* add files to be excluded and skip string normalization
* removed isort from pre-commit
* remove version locks for black
* fix
* remove all isort
* update requirements
Co-authored-by: SuyashSalampuria <suyash546@gmail.com>
Co-authored-by: Kyle Lahnakoski <kyle@lahnakoski.com>
This is part 1 of this bug and only makes changes to how JobDetails API
is used in the UI to retrieve uploaded artifacts. It updates ReplicatesGraph,
DetailsPanel, UnsupportedJob and LogViewer App. Adds helpers and updates tests.
This change allows the user to enter a test/manifest path and find jobs that match it.
This supports the code landed in [bug 1615333](https://bugzilla.mozilla.org/show_bug.cgi?id=1615333)
We only fetch test manifest artifacts when `test_paths` is part of the URL.
Also added a test to correctly map tests/manifest from the task name, thus, increase of code coverage.
The code was originally landed here:
0f9e053096
and reverted here:
3224c217f5
* Add Travis job to run Python tests outside of Docker
* `runtests.sh` is renamed to `runchecks.sh` and it does not run Python tests
* `manage.py check --deploy` was duplicated in Travis
* Update testing documentation
* Remove `-bb` since it is not needed since Python 3.5
This change allows the user to enter a full test path and find jobs that match it.
This supports the code landed in [bug 1615333](https://bugzilla.mozilla.org/show_bug.cgi?id=1615333)
Also added test to correctly map tests from task name, thus, increase of code coverage.
* Add management task for fetching github commits based on repository fixes and
2 tables for storing that data
* Add changelog web api
* Add tests
* Refactor Github utilities into one file and move http utilities from common.py to new file
Git based projects can list pushes in the UI incorrectly. This can be caused by commits having been ammended on a PR or merges of old commits.
Using the committer's date (the date when the PR gets merged) instead of the author's date to determine push time fixes the sorting problem.
This change also includes:
* Support for manual ingestion of Git pushes
* Support for ingesting the latest commits for a repo
* Script to compare pushes between Treeherder instances
## Script to compare pushes between Treeherder instances
`compare_pushes.py` compares the last 50 pushes of various projects for different Treeherder instances. The output generates links to each instance and revision to visually compare.
```console
% ./misc/compare_pushes.py --projects android-components,fenix,reference-browser,servo-master,servo-auto,servo-try
Comparing android-components against production.
Comparing fenix against production.
Comparing reference-browser against production.
{"values_changed": {"root['push_timestamp']": {"new_value": 1582580346, "old_value": 1582581477}}}
https://treeherder.allizom.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4ehttps://treeherder.mozilla.org/#/jobs?repo=reference-browser&revision=547a18b97534b237fa87bd22650f342836014c4e
Comparing servo-master against production.
Comparing servo-auto against production.
Comparing servo-try against production.
```
For test path filtering the artifact is quite large (over 1MB) but the
compressed version is much smaller (~90KB).
This change will try to first download the compressed file and then
attempt the uncompressed version as a fallback.
* Bug 1616311 - Fix when a key starts with a numeral
We use this as an `id` or query selector at times. So it must
start with a character.
* Bug 1616311 - Pass the correct revision to CommitHistory
We were passing the revision of the parent, not the current revision
for which we are showing the RevisionList
* Bug 1616311 - Add ability to copy test group name to clipboard
Github based projects can list pushes in the UI incorrectly. This is caused by commits that have been ammended.
This code change switches to grab the push time from the `timestamp` field of the head commit from the Pulse event rather that Github's APIs. This fixes the problem of push sorting.
Note, that the field `timestamp` only exists in the Push event that the Pulse message contains. This field can be seen in the `events` API, however, that API contains all sorts of events and holds a maximum of 300 events.
This change also includes partial support for manual ingestion of Git pushes.
* CSS Cleanup
* Use darker-info and darker-secondary for a11y
* Put Parent Push metric at end of list and clean it up
* Add a `scrollToLine` when clicking/expanding metric names
Git based projects can list pushes in the UI incorrectly. This is caused by commits that have been ammended.
This code change switches to use the `timestamp` field of head commit to determine push time rather a commit's authorship date. This fixes the problem of push sorting.
This change also includes support for manual ingestion of Git pushes.
* refactor components using bootstrap elements with reactstrap
* add template for cdn to access Bootstrap CSS
* remove bootstrap, jquery and angular library
* fixes to get tests passing and add bootstrap link to csp
* more error handling
* more explanation
* django query does not encode datetime
* fix redis
* update hashes
* Handle Decimal on prototype
* add --start for testing, limit some string length
* more logging
* Properly configure LOGGING_LEVEL
`LOGGING_LEVEL` was being cast down to False rather than "INFO" or "DEBUG".
There were no fallouts from it but it was preventing setting the right logging
level for the Docker container or the Heroku Review Apps.
* Validate preseed entries and fail if issues are found
Without validation some invalid data job priorities would be inserted into the table. No issues
would be noticed for SETA since the web API sanitizes the data before presenting it.