- Feb 03, 2025
-
-
Emil Laurentowicz authored
This will allow for easier contact with the author of the change.
-
- Jan 20, 2025
-
-
Emil Laurentowicz authored
Add a new "runconfigs" field to the serialized response returned from the serialize_bug function. It's a list containing the values of all run configurations in which the given bug has been observed. Example use case in replication scripts - adding "First seen in: [runconfig name]" to the description of a bug in a bug tracker.
-
- Dec 18, 2024
-
-
Piotr Kira authored
Using only `name` property of `TextStatus` object to group chart data can results in invalid charts because `name` value does not have to be unique. To fix that we have to use `str` method of `TextStatus` which provides unique string based on combination of testsuite + text status name which is guaranteed to be unique.
-
- Dec 16, 2024
-
-
Piotr Kira authored
Admin permissions are to broad, we should use specific permissions for testing purpose.
-
- Dec 04, 2024
-
-
Piotr Kira authored
We don't need to verify permissions because now that we use only POST endpoints Django framework handles verifying permissions for us.
-
Piotr Kira authored
I've refactored vetting and suppressing to use dedicated rest api endpoints so we can remove duplicated code. The behaviour is the same as before -> user clicks action button, page is reloaded with new data. In hopefully near future (hopefully), I will change this behaviour with HTMX or/and Alpine.js but for now let's keep it as it is.
-
Piotr Kira authored
I've added TextStatusViewSet so we can use it for vetting and suppressing statuses via rest API.
-
Piotr Kira authored
Let's add vetting and suppressing machines via REST API so we can do it in automated manner.
-
Piotr Kira authored
Refactor suppressing/vetting by extracting common logic we can use for machine view and status views. Change vet/suppress methods to post as these change state.
-
- Nov 25, 2024
-
-
Piotr Kira authored
Failure rate and other statistics based on `RunFilterStatistic` are not calculated correctly because `RunFilterStatistic` is only created for test_results which are failures (is_failure returns true). To fix that we have to itterate over all the results and check coverage of filters. Unfortunatelly this may result in worsening of the import duration. Example: In case of filter -> 'status_name = "abort"' statistic will be created for: * test result matching filters (status_name = "abort") * test results not matching filters but which are failures (status_name = "fail", "timeout" etc.) Statistic won't be created for test result with status name "pass".
-
- Nov 18, 2024
-
-
Piotr Kira authored
Refactor visitors to reduce code duplication and potential discrepancies.
-
Piotr Kira authored
I've refacotred matching and cover logic to use QueryParserPython. It simplifies code.
-
Piotr Kira authored
Add QueryParserPython which parses 'user_query' into Python function that checks if given Django model instance matches provided 'user_query'. Basically it means we can execute 'user_queries' locally in Python itself. This functionality can improve performance of importing results in some cases. For example in case of importing low number of failures.
-
Piotr Kira authored
Current QueryParser logic is not intuitive when quering many-to-many fields multiple times. In case of quering one many-to-many fields all of the condition checks are applied for every single value. For example let's say we have one machine in database with tags 'A' and 'B'. This query would return that machine: `machine_tag = 'A' OR machine_tag = 'B'` These queries wouldn't: `machine_tag = 'A' AND machine_tag 'B'` `machine_tag = 'A' AND machine_tag ICONTAINS 'b'`
-
Piotr Kira authored
Refactor QueryparserTests to use real Django models.
-
Piotr Kira authored
I've extracted base of QueryVisitor logic to QueryVistorBase class so I can reuse it next patch where I plan to create QueryParser which would build and return matching function.
-
- Oct 29, 2024
-
-
Emil Laurentowicz authored
Currently, all paginated tables are bugged. When one tries to change the page, filters are cleared and vice versa. It was due to the fact that both these features were overriding GET URL parameters. This change fixes that. Querystring template tag (introduced in Django 5.1) was used instead of concatenating parameters by hand to simplify the process.
-
- Oct 28, 2024
-
-
Emil Laurentowicz authored
In Django, when someone tries to access a page number in a paginator that is higher than the total number of pages available, it usually results in a 404 error. The SafePaginator class changes this behavior. Instead of throwing an error, it automatically retrieves and displays the last available page. This can be particularly useful in situations where, for example, a user is viewing the last page of a table and then applies a filter that reduces the number of pages. Normally, this would cause a 404 error because the page they were on no longer exists. With SafePaginator, the user would simply be shown the last available page instead of encountering an error. The only method that SafePaginator overrides is validate_number, which is responsible for checking if the requested page number is valid.
-
- Oct 23, 2024
-
-
Piotr Kira authored
Let's add rest API endpoints for UnknownFailure, this will allow to dynamically fetch UnknownFailures on frontend if we need this in future + enable third party integrations (like data analyzing).
-
- Oct 21, 2024
-
-
Piotr Kira authored
It should set HTML rather than text because there are some elements that should be parse, like <span>.
-
Piotr Kira authored
Default settings are not optimal for CIBugLog, let's update them.
-
- Oct 16, 2024
-
-
Piotr Kira authored
Python and Postgresql regular expression engines differ, one of the difference is that "." symbol matches every character in Postgresql, even new lines, but in python it matches everything but new line character. More info: https://docs.python.org/3/howto/regex.html CIBugLog executes filters both in Python and Postgresql and in case of using "." in rare cases we get different results. Let's use Postgresql, more standard way (POSIX) of interpreting dot character.
-
Piotr Kira authored
Server error for stats is not handled properly, and in case of such error no info is displayed in web ui for user + loading spinner is still spinning.
-
Piotr Kira authored
I've extracted logic of setting stats info and spinner to make code more simple.
-
- Oct 15, 2024
-
-
Piotr Kira authored
Add contributing section to README.md
-
Piotr Kira authored
MAINTAINERS file should clarify situation of who is a Maintainer of CIBugLog.
-
- Aug 26, 2024
-
-
Piotr Kira authored
Django 5.1 introduced connection pool support for PostgreSQL, that can reduce latency so I've decided to use it. For now with default settings. Info: https://docs.djangoproject.com/en/5.1/releases/5.1/#postgresql-connection-pools
-
Piotr Kira authored
-
- Aug 14, 2024
-
-
Piotr Kira authored
`dsn` vairable is not defined, fix that by ussing correct variable `SENTRY_DSN`.
-
- Jul 31, 2024
-
-
Pack image and stage for Python's 3.12 tests in one template hidden job following the DRY software development principle. Fix wrong comment. Delete unnecessary script that meant to override default scripts.
-
Globally-defined before_script and only keywords are deprecated. https://docs.gitlab.com/ee/ci/yaml/#deprecated-keywords
-
-
- Jul 25, 2024
-
-
Piotr Kira authored
-
- Jul 24, 2024
-
-
Add filtering to MachineViewSet.
-
Piotr Kira authored
Filtering tests didn't work because of typo, filter_class instead of filterset_class. I've also removed filter_fields data because it's not needed, all of the filtering is definted in filterset_class - TestFilter.
-
- Jul 23, 2024
-
-
Piotr Kira authored
I've decided to add ID column to UnknownFailures table to make it easier to identify given failure. This will help with cooperation of bug fillers, now when they want to talk about specific unknown failure with each other they have to send screen-shot of the table row because there is no way to share unique identifier.
-
- Jun 19, 2024
-
-
Emil Laurentowicz authored
This query should filter out issues that are expected. It has not done it, until now.
-
- Jun 13, 2024
-
-
Piotr Kira authored
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience.
-
Emil Laurentowicz authored
Add "build_name" to filter options of UnknownFailure model to enable filtering issues by build names. It is a useful feature when dealing with sporadic regressions that affect a few builds, which have produced invalid results. Log signatures are not always unique in these cases, so creating a bug for such issues is not easy. This feature is only added to user query, because it is supposed to be used rarely - no need to add any GUI element for that.
-
Emil Laurentowicz authored
-