beat.web issueshttps://gitlab.idiap.ch/beat/beat.web/-/issues2015-05-03T20:56:02Zhttps://gitlab.idiap.ch/beat/beat.web/-/issues/119Recursive behavior of can_be_deleted()2015-05-03T20:56:02ZAndré AnjosRecursive behavior of can_be_deleted()I think that the behavior of `can_be_deleted()`, at least on Libraries is not 100% correct. An object can be deleted if it is not used by another object. So, I think the straightfoward way to check for it would be to just verify if any a...I think that the behavior of `can_be_deleted()`, at least on Libraries is not 100% correct. An object can be deleted if it is not used by another object. So, I think the straightfoward way to check for it would be to just verify if any algorithm is using that library. If that is the case, it cannot be deleted. Else, if nobody references this library, then it can be deleted.
Could you please confirm?Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/118beat.web.algorithms.Algorithm & related code cannot handle Libraries on save()2015-05-03T20:04:28ZAndré Anjosbeat.web.algorithms.Algorithm & related code cannot handle Libraries on save()As it is currently implemented, the Algorithm class on beat.web cannot handle an existing JSON (for example through an upload via the command-line), which references libraries. Its `save()` method will not updated the library relationshi...As it is currently implemented, the Algorithm class on beat.web cannot handle an existing JSON (for example through an upload via the command-line), which references libraries. Its `save()` method will not updated the library relationship as it should.
The JSON of an algorithm (or library for that matter), already contains a mapping description, which defines which libraries it uses. Upon `save()`, the field `referenced_libraries` should be updated.
I think the issue comes from the fact you can add a library w/o going through the `save()`, whereas I think the system was designed in such a way you must always go through the `save()`.
This means that any modification operation should:
1. Load the old JSON
2. Allow the user to modify it
3. Overwrite the old JSON on the object with the new one (at the file field)
4. Call the object's save() method
This strategy should automatically update the `referenced_libraries` field. This strategy also assures that we have a consistent representation of the object w.r.t. beat.web and beat.core.
We allow for no other way to modify this object.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/107Re-using a saved search after platform update not working2015-04-14T11:55:44ZSébastien MARCELRe-using a saved search after platform update not workingon my Search tab https://www.beat-eu.org/platform/user/smarcel/?tab=searches
I am re-using a previous search by clicking to reach
https://www.beat-eu.org/platform/search/smarcel/MOBIO/
and I got a pop-p error message "Error: Forbi...on my Search tab https://www.beat-eu.org/platform/user/smarcel/?tab=searches
I am re-using a previous search by clicking to reach
https://www.beat-eu.org/platform/search/smarcel/MOBIO/
and I got a pop-p error message "Error: Forbidden" then loading forever.
Alternatively on my Search tab I am not able to create new Search anymore ?
Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/106Re-running forked experiments after platform update not working2015-05-07T08:30:02ZSébastien MARCELRe-running forked experiments after platform update not workingBug 1
Re-running https://www.beat-eu.org/platform/experiments/smarcel/tutorial/digit/2/character-recognition-2-mlp-nhu10-iter50-rr/
forked and named character-recognition-2-mlp-nhu10-iter50-rr3
pressed GO and pop-up error messag...Bug 1
Re-running https://www.beat-eu.org/platform/experiments/smarcel/tutorial/digit/2/character-recognition-2-mlp-nhu10-iter50-rr/
forked and named character-recognition-2-mlp-nhu10-iter50-rr3
pressed GO and pop-up error message "ERROR: The scheduler did not accept the experiment (saved for later execution).\nREASON: Block `mean_compute_train' of experiment `smarcel/tutorial/digit/2/character-recognition-2-mlp-nhu10-iter50-rr3' requests to run on queue `Default' (on 1 slot(s)) with environment `Scientific Python 2.7 (0.0.3)`, but that combination does not seem currently possible"
Bug 2
interestingly for on the same page I clicked to select a new Scientific Environment, pressed GO again I obtained a new pop-up error message:
"The label 'character-recognition-2-mlp-nhu10-iter50-rr3' is already used"
Bug 3 (similar to Bug 1?)
Re-running https://www.beat-eu.org/platform/experiments/smarcel/tpereira/full_isv/1/PR-ISV-mobio-male-rr/ (already attested)
forked and named PR-ISV-mobio-male-rr3
pressed GO and pop-up error message "Traceback (most recent call last):\n File \"/remote/sw/beat.web/src/beat.web/beat/web/experiments/models.py\", line 114, in create_experiment\n experiment.save()\n File \"/remote/sw/beat.web/src/beat.web/beat/web/experiments/models.py\", line 261, in save\n raise SyntaxError(message % '\\n * '.join(errors))\nSyntaxError: The experiment isn't valid, due to the following errors:\n * /globals: Additional properties are not allowed ('tpereira/periocular_crop' was unexpected) (rule: /properties/globals/additionalProperties)\n"
Bug 4 (similar to Bug 2 ?)
Re-running https://www.beat-eu.org/platform/experiments/smarcel/elie_khoury/ubmgmm_voxforge/1/ubmgmm-voxforge-g32iter25-rr2/
forked and named ubmgmm-voxforge-g32iter25-rr3
pressed GO and pop-up error message "ERROR: The scheduler did not accept the experiment (saved for later execution).\nREASON: Block `preprocessing_ubm' of experiment `smarcel/elie_khoury/ubmgmm_voxforge/1/ubmgmm-voxforge-g32iter25-rr3' requests to run on queue `Default' (on 1 slot(s)) with environment `Scientific Python 2.7 (0.0.3)`, but that combination does not seem currently possible"
Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/101Worker: missing easy deactivation action2015-04-20T16:26:07ZAndré AnjosWorker: missing easy deactivation actionIt should be possible to quickly deactivate a number of workers from the configuration, w/o removing all of the configuration from its place. This would allow us to adjust the farm size on demand.
Items to be executed:
- [x] Add a ...It should be possible to quickly deactivate a number of workers from the configuration, w/o removing all of the configuration from its place. This would allow us to adjust the farm size on demand.
Items to be executed:
- [x] Add a field on each worker indicating its state (active/deactive)
- [x] Add an action to the worker admin to deactivate/activate workers in batch
- [x] Modify the configuration logic so that, if a worker is active, is the same as it not belonging to the configuration
- [x] Display this information adequately on the scheduler/backend pageTutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/100Backend/scheduler administration page improvements2020-08-03T08:41:33ZAndré AnjosBackend/scheduler administration page improvementsA small list of improvements for the backend/scheduler page:
1. The worker listing takes too much space and does not allow for the visualisation of important information. It would be better to transform it into a table, in which each ...A small list of improvements for the backend/scheduler page:
1. The worker listing takes too much space and does not allow for the visualisation of important information. It would be better to transform it into a table, in which each line corresponds to a host and each column shows the following information: IP address, cores (in-use/available), memory (in-use/available), beat.scheduler version. The color of the line can be color coded: light green means 100% free, light read means 100% occupied, light yellow means partially occupied.
2. The total number of cores affected to a queue should be displayed
3. The queue listing should also become a table with more compact information displayed.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/88Implement support for beat.core description/documentation API2015-05-06T07:45:26ZAndré AnjosImplement support for beat.core description/documentation APIThe new beat.core contains direct support for object descriptions and a documentation API.
Following the other functionality that is already well-merged with beat.core, it would be good that this package also used the beat.core APIs t...The new beat.core contains direct support for object descriptions and a documentation API.
Following the other functionality that is already well-merged with beat.core, it would be good that this package also used the beat.core APIs to set and get object descriptions and documentation.
The object `short_description` in beat.web (known as `description` in beat.core), can still be cached inside beat.web, but should be updated on beat.core once it changes. This allows users to simply edit the object JSON files and still be able to push the description to the server, when they are using the command-line interface.
Similarly, `description` in beat.web (known as `documentation` in beat.core) should be materialized in a proper file, like it is done for the JSON declarations. This would allow users from the command-line to edit this file and push it to the server.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/86Missing API for downloading databases and views2015-03-18T12:16:12ZAndré AnjosMissing API for downloading databases and viewsWe're currently missing an API to download databases (JSON and views) associated with experiments. There should be no reason why this should not be possible.
Currently, after downloading and experiment, the toolchain and related algor...We're currently missing an API to download databases (JSON and views) associated with experiments. There should be no reason why this should not be possible.
Currently, after downloading and experiment, the toolchain and related algorithms and dataformats, the user may not validate the experiment because it is lacking the database definition.
Clearly, we're not talking about the real data, just the (JSON and python views) associated with the platform. Confidentiality should be respected in all cases.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/84Synchronisation issue between the system status and the internal status ?2015-03-27T06:09:52ZSébastien MARCELSynchronisation issue between the system status and the internal status ?there might be a synchronisation issue between the system status ( https://www.beat-eu.org/platform/ ) and the internal status. Indeed, the status says that 1 experiment is running but clearly looking at the scheduler page this is not th...there might be a synchronisation issue between the system status ( https://www.beat-eu.org/platform/ ) and the internal status. Indeed, the status says that 1 experiment is running but clearly looking at the scheduler page this is not the case.
Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/71Inserting an invalid JSON for a database generates a beat.web error2015-03-18T12:52:42ZAndré AnjosInserting an invalid JSON for a database generates a beat.web errorA simple test is to copy-paste the JSON containing version and short doc strings.A simple test is to copy-paste the JSON containing version and short doc strings.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/53Validation of all Contributions must be more thorough2015-03-18T12:17:09ZAndré AnjosValidation of all Contributions must be more thoroughCurrently, the validation of contributions saved on our database does not go through important accessibility check that must be executed before object insertion.
Namely, the following checks should be performed:
* [x] When the user...Currently, the validation of contributions saved on our database does not go through important accessibility check that must be executed before object insertion.
Namely, the following checks should be performed:
* [x] When the user inserts a data format, that all referenced data formats are accessible
* [x] When the user saves an algorithm that all referenced data formats are acessible
* [x] When the user saves an experiment, that databases, algorithms, analysers, data formats and environments are accessible.
When all these items are checked, we can safely close this bug.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/21New django action for experiment deletion2017-08-23T11:36:30ZAndré AnjosNew django action for experiment deletionWe should add a new django admin action (https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/) for treating Experiment objects in the BEAT django DB.
In case this action is clicked by the administrator, it allows him/her t...We should add a new django admin action (https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/) for treating Experiment objects in the BEAT django DB.
In case this action is clicked by the administrator, it allows him/her to:
- Delete the Experiment + all associated results
- Clean-up the cache from the experiment:
* Clean-up local cache entries in the Django DB
* Send a message to the scheduler to delete certain cache files (see biometric/beat.scheduler#10). Notice you don't need to cancel any experiment (in case they are running). The scheduler shall be able to handle this gracefully.
If another experiment shares cache files with the experiment being deleted, then:
1) The cache files of that experiment are also cleaned-up
2) The experiment is marked as "Pending", so the user can re-run it at a later stage (unless the experiment was also running, in which case it will be cancelled by the scheduler automatically).
We understand this is a rather drastic action, but may be required in case of severe cache corruption.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/15Consolidation of platform statistics2015-03-06T08:15:22ZAndré AnjosConsolidation of platform statisticsWe current have an initial implementation for the platform statistics. We need to improve on it so its useful for platform demonstrations and system administration.
It would be nice to integrate this with the new scheduler state as well.We current have an initial implementation for the platform statistics. We need to improve on it so its useful for platform demonstrations and system administration.
It would be nice to integrate this with the new scheduler state as well.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/10Usage/Upload of docstrings2017-08-23T11:36:34ZAndré AnjosUsage/Upload of docstringsThe usage and upload of docstrings need to be implemented through out the platform. Currently:
- [x] Database pages generate a 404 error
- [x] Short/Long documentation strings are not very flexible or editable online or even through ...The usage and upload of docstrings need to be implemented through out the platform. Currently:
- [x] Database pages generate a 404 error
- [x] Short/Long documentation strings are not very flexible or editable online or even through the command-line. It would be good to have an interface that is similar to github or gitlab, in which you can attach images to descriptions. I'm not sure how to handle garbage collection in this case (i.e., pictures which are not being used anymore).Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.web/-/issues/4Changes to the TOS web site behavior2015-03-18T13:16:48ZAndré AnjosChanges to the TOS web site behaviorBased on discussions with our lawyers and legal partner (Els), I've updated the ToS documentation that is required for Users (i.e. people registering into the platform). Things to do:
1. [x] @Kanma: **URGENT**: Update the ToS using th...Based on discussions with our lawyers and legal partner (Els), I've updated the ToS documentation that is required for Users (i.e. people registering into the platform). Things to do:
1. [x] @Kanma: **URGENT**: Update the ToS using the new `tos.rst` in `docs`.
2. [x] In the ToS, a "Contact Form" is mentioned. This form should be used to notify Idiap of problems with the use or management of the BEAT platform. Currently, this contact form does not exist in our platform. It must be created (with a captcha to avoid spamming). Once that is established, one should replace the placeholder for the contact form in the ToS with the final address. Currently it is set to https://beat-eu.org/platform/contact
3. [x] In discussion with our lawyers, it became clear we need to establish a feature that identifies if a certain **Visitor** (this is != User) is a first time visitor or a recurrent visitor (possibly using cookies). If the visitor is a first time visitor, a banner should pop-up (discretely) and say: "The BEAT Platform, like other sites on the internet, uses cookies to customise your interaction with the platform itself. By visiting the IDIAP BEAT Platform you implicitly acknowledge our Legal Disclaimer." At this point, the words "Legal Disclaimer" should be clickable and point to the `legal_disclaimer.rst` file in the `docs` directory. The file should be displayed like the ToS, as a pop-up. *Users that dismiss the banner, get a cookie indicating they have accepted the disclaimer, with a given version number*.
4. [x] In the Legal Disclaimer, a link to the ToS should be made available. A place holder pointing to "https://beat-eu.org/platform/tos" is there, but should be updated if that changes. Action Point: We should create a URL that points to the ToS like stated.
5. [x] Both the "ToS" and our "Legal Disclaimer" have a version number. Users that access the platform **after** the ToS has been updated, should get a banner pointing to the new ToS. Visitors that access the platform **after** the "Legal Disclaimer" has been updated should also check it again. Note that **Users** don't need to go through the "Legal Disclaimer", just visitors. *This feature can be achieved by comparing the cookie established on the user browser with the current version of the ToS/Legal Disclaimer and showing/updating it*.
6. [x] While we can make sure that a person that does not accept the ToS cannot register, we cannot make sure that a Visitor that does not agree with the Legal Disclaimer will not continue visiting the website. By clicking on the "banner close" button or by popping up the "Legal Disclaimer", the user implicitly agrees with what is said in there. If they don't agree, then they should just leave the website. At this point, creating a mechanism to block the contents may be tricky (@Kanma: what do you think about this?)
After all these items have been implemented, I think we can finally close this issue.Tutorial for the FG2015 ConferenceAndré AnjosAndré Anjos