beat issueshttps://gitlab.idiap.ch/groups/beat/-/issues2020-10-21T10:11:02Zhttps://gitlab.idiap.ch/beat/beat.web/-/issues/571Two Factor Authentication2020-10-21T10:11:02ZSamuel GAISTTwo Factor AuthenticationSince the platform is storing user data, it would be a welcomed addition for them to be able to secure their account using two factor authentication.
This should have no impact on the API since a token is used to communicate with the se...Since the platform is storing user data, it would be a welcomed addition for them to be able to secure their account using two factor authentication.
This should have no impact on the API since a token is used to communicate with the service.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/570Fix url prefix usage in yearly account revalidation command2020-09-28T13:36:45ZFlavio TARSETTIFix url prefix usage in yearly account revalidation commandThe command and message needs to be updated to fix the url prefix usage.The command and message needs to be updated to fix the url prefix usage.Django 3 migrationFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/569Deletion of migration patch for current users to the supervision system2020-09-28T13:36:52ZFlavio TARSETTIDeletion of migration patch for current users to the supervision systemThe migration patch ecosystem that was used to warn current users of the new supervision system needs to be removed as it unused and it no longer makes sense to keep it in the repository.
The following migrations need to be adjusted to ...The migration patch ecosystem that was used to warn current users of the new supervision system needs to be removed as it unused and it no longer makes sense to keep it in the repository.
The following migrations need to be adjusted to accommodate with this.
The email generated for this need to be removed too.Django 3 migrationFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/568Crash on new supervisor sign-up2020-09-28T13:36:52ZFlavio TARSETTICrash on new supervisor sign-upThe application crashes with a `django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.` when signing-up as a new supervisor.
This issue has shown up after the shift to Django 3The application crashes with a `django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.` when signing-up as a new supervisor.
This issue has shown up after the shift to Django 3Django 3 migrationFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/567Dead code removal2020-09-28T09:20:24ZSamuel GAISTDead code removalSome code in this repository is no longer used.
For example scripts/scheduler.py. It has been replaced with Django management commands to take advantage of the ZMQ communication system.
Therefore, everything that is unused should be re...Some code in this repository is no longer used.
For example scripts/scheduler.py. It has been replaced with Django management commands to take advantage of the ZMQ communication system.
Therefore, everything that is unused should be removed.Code cleanuphttps://gitlab.idiap.ch/beat/beat.web/-/issues/566Asset files are read in templates rather than using the proper property2020-09-17T14:14:18ZSamuel GAISTAsset files are read in templates rather than using the proper propertyAsset having files have are related properties that handles the data loading.
Several templates use the file object directly rather than the property which has as side effect of depending on the default mode used to open the file.
Curr...Asset having files have are related properties that handles the data loading.
Several templates use the file object directly rather than the property which has as side effect of depending on the default mode used to open the file.
Currently it looks like the mode is binary and thus the rendering is wrong.
Related to !358Code cleanupSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/565Admin: Environments are not clearly shown2020-09-28T13:36:52ZFlavio TARSETTIAdmin: Environments are not clearly shownFor Environments: The environment languages displayed for each environment is unclear:
We have like
```
Language:
Python
Python
Python
Python
That's very confusing.
```For Environments: The environment languages displayed for each environment is unclear:
We have like
```
Language:
Python
Python
Python
Python
That's very confusing.
```Code cleanuphttps://gitlab.idiap.ch/beat/beat.web/-/issues/564Crash in some admin pages2020-09-11T15:56:04ZSamuel GAISTCrash in some admin pagesWhen trying to go to an admin page that shows a beat asset, the site crashes because of a missing parameter.When trying to go to an admin page that shows a beat asset, the site crashes because of a missing parameter.Django 3 migrationSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/563Code deduplication2020-09-09T09:41:33ZSamuel GAISTCode deduplicationThere are several places in beat/beat.web> where there is code duplication.
For example all interactive management commands follow the same structure and re-implement the `get_input_data`. This is typically a case where there should be ...There are several places in beat/beat.web> where there is code duplication.
For example all interactive management commands follow the same structure and re-implement the `get_input_data`. This is typically a case where there should be a base class for that.
This would have avoided a mix of raw_input and input usage because of Python 2 VS Python 3 implementations.Code cleanuphttps://gitlab.idiap.ch/beat/beat.web/-/issues/562Pre-commit cleanup2020-09-11T15:54:25ZSamuel GAISTPre-commit cleanupThe current code base is pretty old and contains code that requires some cleanup.
The cleanup includes:
- Unused import
- Ordering of imports
- Unused code
- Possible coding issue
This list is not exhaustive.
The cleanup shall be done...The current code base is pretty old and contains code that requires some cleanup.
The cleanup includes:
- Unused import
- Ordering of imports
- Unused code
- Possible coding issue
This list is not exhaustive.
The cleanup shall be done using pre-commit hooks that include:
- black
- isort
- bandit
- flake8
And possibly others if relevant tools are found in the process.Code cleanupSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/561Update dependencies to Django 32020-09-28T13:36:49ZSamuel GAISTUpdate dependencies to Django 3The version of Django currently used by the platform is outdated.
This issue tracks the update of the Django as well as its dependencies to a current and maintained version.The version of Django currently used by the platform is outdated.
This issue tracks the update of the Django as well as its dependencies to a current and maintained version.Django 3 migrationSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/560E-mail confirmations not containing the URL prefix and User links on the website2020-09-28T13:37:32ZFlavio TARSETTIE-mail confirmations not containing the URL prefix and User links on the websiteIssues with e-mail confirmations need to be checked as they don't contain the URL prefix and User links on the website.
On a local instance of beat.web this works, but it fails on the production platform. This seems to be a Django rel...Issues with e-mail confirmations need to be checked as they don't contain the URL prefix and User links on the website.
On a local instance of beat.web this works, but it fails on the production platform. This seems to be a Django related issue as a first guess.
A similar problem also seem to happen with "experiments".
Might be related to #558 and #561 Django 3 migrationFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.web/-/issues/559Python 2 Code removal2020-09-28T13:36:53ZSamuel GAISTPython 2 Code removalCurrently beat/beat.web> code is still compatible with Python 2.
The infrastructure has been running Python 3 for several years and moving to Django 3 implies that Python 2 is now out of question.
This issue tracks the work of removing...Currently beat/beat.web> code is still compatible with Python 2.
The infrastructure has been running Python 3 for several years and moving to Django 3 implies that Python 2 is now out of question.
This issue tracks the work of removing all the compatibility code that has not been used for years and that will not be used anymore.Django 3 migrationSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/558Fix usage of URL_PREFIX2020-09-28T13:38:15ZSamuel GAISTFix usage of URL_PREFIXCurrently the URL_PREFIX settings variable is used like a fully qualified URL in many parts of the website which is wrong. As the name suggests, this prefix shall essentially "move" all the URLs of the site behind it.
If a fully qualifi...Currently the URL_PREFIX settings variable is used like a fully qualified URL in many parts of the website which is wrong. As the name suggests, this prefix shall essentially "move" all the URLs of the site behind it.
If a fully qualified address is needed it should be generated either using the request object associated with the method call or using Django's Sites framework.
This issue tracks the cleanup of the following:
- [x] Email generation
- [x] Template rendering
- [x] Other usagesDjango 3 migrationFlavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.cmdline/-/issues/75docker experiment runs not tested properly.2020-08-10T15:27:01ZAmir MOHAMMADIdocker experiment runs not tested properly.There are several issues when you run the experiments with the docker executor:
* [x] `db.examples` docker image is not publicly available
* [ ] indexing of databases (`view.index` method) runs outside docker (different `root_folder` ...There are several issues when you run the experiments with the docker executor:
* [x] `db.examples` docker image is not publicly available
* [ ] indexing of databases (`view.index` method) runs outside docker (different `root_folder` compared to inside docker containers) and this leads to broken paths when `.get` of views is called inside docker.
* [ ] logging leads to stat errors:
```
% beat experiment run --docker jmcgrat3/jmcgrat3/livdet-baseline/1/livdet-baseline
Index for database livdet-iris-2020/1 not found, building it
Registered 'LivDet2020 (1.0.0)' -> 'livdet2020:latest'
Untagged image, skipping
Registered 'Python (2.1.0)' -> 'beatenv/beat.env.python:2.1.0r7'
Registered 'Python (1.0.0)' -> 'beatenv/beat.env.python:latest'
Registered 'OpenCV (1.0.0)' -> 'opencv:latest'
Registered 'C++ (2.0.0)' -> 'beatenv/beat.env.cxx:2.0.0r3'
Running `jmcgrat3/BSIF-Feature-Extraction/1' for block `s17b12'
Start the execution of 'jmcgrat3/BSIF-Feature-Extraction/1'
Traceback (most recent call last):
File "/Users/josephmcgrath/miniconda3/envs/beat/bin/beat", line 11, in <module>
sys.exit(main())
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/decorators.py", line 94, in _decorator
value = view_func(*args, **kwargs)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/experiments.py", line 782, in run
return run_experiment(config, name, force, docker, local, environment, quiet)
File "/Users/josephmcgrath/miniconda3/envs/beat/lib/python3.7/site-packages/beat/cmdline/experiments.py", line 312, in run_experiment
simplify_time(data_stats["time"]["read"]),
KeyError: 'time'
```Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/557Experiment put may fail due to spur PUT calls2020-08-03T09:49:48ZSamuel GAISTExperiment put may fail due to spur PUT callsThis issue appears currently only with Safari.
When accessing an experiment it sometimes sends a PUT command that does not follow through but still runs through enough of the machinery to trigger an error.
The error comes from the fact...This issue appears currently only with Safari.
When accessing an experiment it sometimes sends a PUT command that does not follow through but still runs through enough of the machinery to trigger an error.
The error comes from the fact that the writing serializer class is set to None as the `put` handling is currently custom implemented unlike the other subclasses of RetrieveUpdateDestroyContributionView.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.web/-/issues/556Cannot access C++ environment information page2020-08-03T09:18:52ZSamuel GAISTCannot access C++ environment information pageCurrently when trying to access the C++ information page an error is generated because no valid pattern can be found that matches the environment name.Currently when trying to access the C++ information page an error is generated because no valid pattern can be found that matches the environment name.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/101Add tmpfs when running a container2020-07-29T09:18:53ZSamuel GAISTAdd tmpfs when running a containerDespite the tests run in the various aspects of the BEAT code base which showed that having the container start read-only was successful, actual run on the platform started to unsuccessfully fail with an error related to temporary file c...Despite the tests run in the various aspects of the BEAT code base which showed that having the container start read-only was successful, actual run on the platform started to unsuccessfully fail with an error related to temporary file creation coming from the entrypoint script loading the correct conda environment.
"Unsuccessfully failed" here means that the full experiment run was marked as good despite that error happening which in fact did not even allow for a proper start of the execution procedure.
The fix for this situation is to add a minimal writable tmpfs for /tmp in order to have the space necessary for that file to be created.
It might also be useful to have one for /run even if it does not look like it is being used currently (at least in the same way as /tmp seemed to not be used).Soft loopsSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.editor/-/issues/278Crash with TypeError: '<' not supported between instances of 'numpy.ndarray' ...2020-07-29T13:19:22ZAmir MOHAMMADICrash with TypeError: '<' not supported between instances of 'numpy.ndarray' and 'str'```
Traceback (most recent call last):
File "src/beat.editor/beat/editor/widgets/assetwidget.py", line 507, in loadAsset
self.__update_content(declaration)
File "src/beat.editor/beat/editor/widgets/assetwidget.py", line 227, in _...```
Traceback (most recent call last):
File "src/beat.editor/beat/editor/widgets/assetwidget.py", line 507, in loadAsset
self.__update_content(declaration)
File "src/beat.editor/beat/editor/widgets/assetwidget.py", line 227, in __update_content
editor.load_json(json_data)
File "src/beat.editor/beat/editor/widgets/editor.py", line 276, in load_json
self._load_json(json_object)
File "src/beat.editor/beat/editor/widgets/plotterparameterseditor.py", line 497, in _load_json
self.__load_json(json_object)
File "src/beat.editor/beat/editor/widgets/plotterparameterseditor.py", line 462, in __load_json
self.__load_parameter(json_object)
File "src/beat.editor/beat/editor/widgets/plotterparameterseditor.py", line 447, in __load_parameter
parameter_viewer = PlotterParameterViewer(name, data)
File "src/beat.editor/beat/editor/widgets/plotterparameterseditor.py", line 256, in __init__
self.parameter_widget = RestrictedParameterWidget(data)
File "src/beat.editor/beat/editor/widgets/plotterparameterseditor.py", line 185, in __init__
self.numerical_spinbox.setValue(self.default)
File "src/beat.editor/beat/editor/widgets/spinboxes.py", line 183, in setValue
if value > self.maximum():
TypeError: '<' not supported between instances of 'numpy.ndarray' and 'str'
```
Steps to reproduce:
```
$ beat plotterparam pull plot/isoroc/1
# open it with the editor
```https://gitlab.idiap.ch/beat/beat.editor/-/issues/277editor puts local config setting into global config2020-07-28T11:27:58ZAmir MOHAMMADIeditor puts local config setting into global configSteps to reproduce
```
$ beat config show
{
"user": "user"
}
$ cat ~/.beatrc
{
"user": "user"
}
$ beat config set --local user tst
$ beat config show
{
"user": "tst"
}
$ cat ~/.beatrc
{
"user": "user"
}
$ beat editor star...Steps to reproduce
```
$ beat config show
{
"user": "user"
}
$ cat ~/.beatrc
{
"user": "user"
}
$ beat config set --local user tst
$ beat config show
{
"user": "tst"
}
$ cat ~/.beatrc
{
"user": "user"
}
$ beat editor start
# do nothing, exit editor
$ cat ~/.beatrc
{
"user": "tst"
}
```