Hello,
This 1.0 release marks the availability of a feature set that we envisioned
back when squad was started. We still have a lot to improve, though, so we will
continue to work on new features and improvements.
This release also brings compatibility with Django 2, which we now use by
default. However, using with Django 1 is still supported. We recommend Python
3.6 or newer.
Since we are bumping the major version number, we are also making two
backwards-incompatible changes that you need to be aware of:
* Test results from incomplete jobs are now completely ignored.
* The LAVA CI backend used to map the success of the "auto-login-action" from a
lava job to a test called "boot". This is now ignored by default. If you rely
on this, you can re-enable this behavior by setting `CI_LAVA_HANDLE_BOOT` in
your project settings (only available in the Django admin interface for the
moment). See the documentation for details.
Below, you will find a summary of the changes in this release.
* frontend:
* frontend: templatetags: add str to global functions for templating
* frontend: compare-project: refactor project comparison UI
* frontend: compare-project: order projects alphanumerically
* frontend: compare-project: compare different builds
* frontend: filter comparison by transitions
* frontend: fix compare projects submit
* frontend: shrink transitions filter table
* frontend: translation: translate django templates
* frontend: `test_history`: fix broken javascript
* api:
* api: rest: add ComplexFilterBackend to GroupViewSet
* api: rest: give write only access to _password field
* ci:
* ci: ignore all results from incomplete test jobs
* ci: backend: lava: change option to handle lava boot results
* core:
* core: `Build.test_suites_by_environment`: make ordering of test results consistent
* core: admin: mark password field as not required
* misc
* Add license information for consumption by reuse
* Added reuse (SPDX compliance tool) to travis.
* migrate to django2
* doc:
* doc: ci: add CI_LAVA_HANDLE_BOOT to docs
* plugins:
* plugins: gerrit: remove `capture_output`
* plugins: gerrit: set code-review to -1 when tests fail
* Updated translations:
* Portuguese (Brazil)
* Polish
* Norwegian Bokmål
Hello,
I have just released squad 0.68. The changelog for this release is the
following:
* Translated using Weblate (Portuguese (Brazil))
* test/karma.conf.js: make chromium work on docker
* api: rest: fix rest-framework `detail_route`
* frontend
* frontend: js: update lodash to 4.17.14
* frontend: compare-tests: fix auto complete initialization
* frontend: compare-tests: add auto-width to select2
* frontend: css: fix word-wrap
* core:
* core: add management sub-command to create/update auth tokens
* core: api: support passing test log in the JSON file
* core: plugins: fix builtin plugins path
* core: plugins: add gerrit builtin plugin
* ci
* ci: lava: fetch test logs if available
* ci/backends/lava: modify unit tests to check logs retrieval
* docs: document notification plugins
Hello,
I have just released squad 0.67. This release brings a few nice
features:
- You can now make build comparisons from the list of builds in the
project page
- You can now compare builds or projects by tests results or by metrics.
- If you have metrics with multiple measurements, the range of values
will be displayed alongside the mean in the charts.
- the lava CI backend can now ignore boot results on a per-project
basis.
Enjoy!
------------------------------------------------------------------------
Full changelog for squad 0.67:
* frontend:
* frontend: combine compare menu
* frontend: add compare build to build list
* frontend: order projects alphanumerically
* frontend: rename "Explore" menu to "Groups"
* frontend: metrics: display range of values
* frontend: metrics: fix Y axis configuration
* frontend: add option to compare build and projects by metrics
* frontend: bring compare menu to front
* frontend: use gettext in login template
* javascript: changed floatThread to floatThead
* ci:
* ci: backend: lava: extract settings to separate method
* ci: backend: lava: add option to ignore lava boot results
* doc:
* doc: ci: add `CI_LAVA_IGNORE_BOOT` to docs
* core
* core: queries: make data entries more readable
* core: queries: expose measurement ranges
* core: add MetricComparison class
* scripts/testdata: generate more interesting metrics
* i18n:
* New translation: Spanish (Mexico)
* Updated translation: Norwegian Bokmål
* Updated translation: Polish
* Updated translation: Portuguese (Brazil)
Hi all,
I saw you have a repository with tradefed and ltp plugins for SQUAD.
If I understand correctly, those plugins retrieve CTS/VTS/LTP logs to
attach the error logs to failed test cases.
My questions are :
How can I setup those plugins to work with my SQUAD instance ?
Do I need to use a specific tradefed test definition to interface it with
the plugin ?
Does the job submission works the same way ? using the submitjob API ?
Thank you in advance,
Axel
Hi,
I have just released squad 0.66. One important change is that we are now
managing translation via weblate:
https://hosted.weblate.org/projects/squad/
So translating is just a matter of going there and translating string by
string. Translations are synced back to the source repository daily.
The full changelog for this release is below. Enjoy!
* frontend
* frontend/templatetags: fix pagination get_page_url
* frontend: fix floatThead
* charts: always redraw dynamic metrics
* api:
* api: allow Authorization: Token in resubmit calls
* api: return proper value when resubmit is not successful
* core:
* metrics: Add dynamic metric summary
* i18n
* Added a partial Norwegian Bokmål translation
* Updated Brazilian Portuguese translation
* doc/translating.rst: add instructions to translate on weblate
Hi all,
I noticed that emails are sent even when my build is not in "finished"
state.
The notification is sent on timeout.
Do you have an idea of what could be the problem?
Thanks,
Axel
Hi,
I have just released squad 0.65. The changelog is the following:
* i18n: add Brazilian portuguese translation for SQUAD UI
* core
* core: `import_data`: adjust dates on imported data
* core: `import_data`: ignore test runs with no metadata
* core: `import_data`: display some indication of progress
* Add environment to MetricsSummary and TestSummary
* Add BuildSummary class
* doc:
* doc/api: fix HTTP method for resubmit endpoints
* doc: add details about LAVA multinode jobs
* api:
* api: fix authentication in resubmit API
* api: fix tests for CI API
* ci:
* ci: allow cloning LAVA results with measurements
* ci: add support for LAVA multinode jobs
* ci: make sure null backend is never used
* frontend
* Add metrics summary to charts
* Make default charts to be overall metrics summary per build
--
Antonio Terceiro
Software Engineer - Linaro
http://www.linaro.org
Hi,
There is a request to allow managing email subscriptions when creating
projects via REST API. Right now there is no such option. I took a
quick look at the REST API code and I can see 2 options:
1. expose Subscription objects to the API
This would be the easiest option as privileged users would be able to
add/remove/modify the objects. This comes at a cost however as it
would expose usernames and email addresses of our users.
2. add "subscribe" endpoint to Project
The path would be like /api/projects/<id>/subscribe
This would be a POST call with only email address included. If the
user with such email address is already in the database it would be
subscribed to the project notifications. If there isn't a user, email
address only would be subscribed. This remove the risk of exposing
users and emails. We would probably also need 'unsubscribe' endpoint
in such scenario.
I lean towards option 2. If there are other suggestions I'm keen to hear them.
milosz
Hi,
I wrote the script
https://github.com/chase-qi/tools/blob/master/squad/create_project.py
to create squad project if it doesn't exist. It works fine with public
project, but doesn't work well with private project. The reason is it
fails to get the new created private project.
For the first time, private project can be created successfully.
```
(env) cq@tp:~/github/chase-qi/tools/squad$ ./create_project.py -p
lkft-gps-private -P False
2019-03-22 17:05:44,699: get_list: INFO: groups get request status code: 200
2019-03-22 17:05:46,745: get_list: INFO: projects get request status code: 200
2019-03-22 17:05:48,797: main: INFO: Data to POST:
{
"group": "https://staging-qa-reports.linaro.org/api/groups/5/",
"slug": "lkft-gps-private",
"name": "lkft-gps-private",
"is_public": "False",
"html_mail": false,
"moderate_notifications": false,
"description": "",
"important_metadata_keys": "build-url\r\ngit branch\r\ngit
commit\r\ngit describe\r\ngit repo",
"enabled_plugins_list": [
"ltp"
],
"wait_before_notification": 600,
"notification_timeout": 18000,
"data_retention_days": 0,
"project_settings": "{}",
"custom_email_template":
"https://staging-qa-reports.linaro.org/api/emailtemplates/1/"
}
2019-03-22 17:05:50,432: creat_project: INFO: Projects post request
status code: 201
2019-03-22 17:05:50,432: creat_project: INFO: Project created:
{
"url": "https://staging-qa-reports.linaro.org/api/projects/195/",
"builds": "https://staging-qa-reports.linaro.org/api/projects/195/builds/",
"id": 195,
"full_name": "staging-lkft/lkft-gps-private",
"slug": "lkft-gps-private",
"name": "lkft-gps-private",
"is_public": false,
"html_mail": false,
"moderate_notifications": false,
"description": "",
"important_metadata_keys": "build-url\r\ngit branch\r\ngit
commit\r\ngit describe\r\ngit repo",
"enabled_plugins_list": "ltp",
"wait_before_notification": 600,
"notification_timeout": 18000,
"data_retention_days": 0,
"project_settings": "{}",
"group": "https://staging-qa-reports.linaro.org/api/groups/5/",
"custom_email_template":
"https://staging-qa-reports.linaro.org/api/emailtemplates/1/"
}
```
When creating the same project again, the following error returned.
```
(env) cq@tp:~/github/chase-qi/tools/squad$ ./create_project.py -p
lkft-gps-private -P False
2019-03-22 17:05:56,582: get_list: INFO: groups get request status code: 200
2019-03-22 17:05:58,628: get_list: INFO: projects get request status code: 200
2019-03-22 17:06:00,674: main: INFO: Data to POST:
{
"group": "https://staging-qa-reports.linaro.org/api/groups/5/",
"slug": "lkft-gps-private",
"name": "lkft-gps-private",
"is_public": "False",
"html_mail": false,
"moderate_notifications": false,
"description": "",
"important_metadata_keys": "build-url\r\ngit branch\r\ngit
commit\r\ngit describe\r\ngit repo",
"enabled_plugins_list": [
"ltp"
],
"wait_before_notification": 600,
"notification_timeout": 18000,
"data_retention_days": 0,
"project_settings": "{}",
"custom_email_template":
"https://staging-qa-reports.linaro.org/api/emailtemplates/1/"
}
2019-03-22 17:06:02,309: creat_project: INFO: Projects post request
status code: 400
2019-03-22 17:06:02,310: creat_project: INFO: Project created:
{
"non_field_errors": [
"The fields group, slug must make a unique set."
]
}
(env) cq@tp:~/github/chase-qi/tools/squad$
```
The script able to check if the project to create already exist by
comparing the project name with the existing projects. `However,
requests.get(url, headers=headers)` only return public project and old
existing private project, it doesn't return the new created private
ones.
Any ideas why?
Thanks,
Chase
Hi all,
after submitting a watchjob request for a test already finished in lava
side, the test status (OK, Fail) is visible in /admin but fetch is not
happening automatically. It works if I start fetch manually.
curl 0.0.0.0:5000/api/watchjob/lava/63_test/ver0315/board1 --header
"Auth-Token: xxxxx76d4a6a5646abfa9d53xxxxxxxxx" --form
"backend=lava_swtest" --form testjob_id=38721
Could you explain how can I make it to fetch automatically?
Thanks for your help!
Fabiano