beat.core issueshttps://gitlab.idiap.ch/beat/beat.core/-/issues2019-07-30T07:15:14Zhttps://gitlab.idiap.ch/beat/beat.core/-/issues/84Implement output for loop block2019-07-30T07:15:14ZSamuel GAISTImplement output for loop blockCurrently the loop blocks don't have any outputs.
This issue tracks the implementation of this feature in the loop block.
One requested constraint for these outputs is that the write to them should happen when a write occurs in the out...Currently the loop blocks don't have any outputs.
This issue tracks the implementation of this feature in the loop block.
One requested constraint for these outputs is that the write to them should happen when a write occurs in the output of a loop user block.Soft loopsSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/83Test prefix: plotters empty uses not present2019-06-28T13:14:47ZFlavio TARSETTITest prefix: plotters empty uses not presentThis issue tracks inconsistency with the json libraries management in the plotter and other editors such as the library editor.
Description of the issue:
In the test prefix, the plotters contain a "uses" key targeting the libraries th...This issue tracks inconsistency with the json libraries management in the plotter and other editors such as the library editor.
Description of the issue:
In the test prefix, the plotters contain a "uses" key targeting the libraries that are used.
When used we have:
```python
"uses": {
"baselib": "plot/baselib/1"
}
```
When no libraries are defined I was expecting to have something like this:
```python
"uses": {}
```
However we get no "uses" key in the dictionary at all. This is counter-intuitive and works at the opposite of what is done for the libraries editor where no libraries used mean having:
```python
"uses": {}
```
in the json file.Flavio TARSETTIFlavio TARSETTIhttps://gitlab.idiap.ch/beat/beat.core/-/issues/82Improve duplicate key handling2019-06-19T05:13:48ZSamuel GAISTImprove duplicate key handlingThis issue tracks the implementation of duplicated key handling in JSON files used.
In normal situation, the files should be edited and stored using beat/beat.editor> or currently still beat/beat.web> however if one does edit the declar...This issue tracks the implementation of duplicated key handling in JSON files used.
In normal situation, the files should be edited and stored using beat/beat.editor> or currently still beat/beat.web> however if one does edit the declaration file by hand, errors like duplicated key might be introduced which won't be caught as loading a JSON file line by line will result in a dictionary with the last entry being used (which is normal behavior when dealing with dictionary type of containers).
In our case, the system will generate an error so that nothing will run with unexpected values.Soft loopsSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/81Nightlies are failing because of this package2019-05-07T14:33:40ZAndré AnjosNightlies are failing because of this packageThere are tests in the nightlies that are currently failing. Not sure these are due to the update of jsonschema to 3.0.1 (may be enforcing something that was not enforced before?)
@samuel.gaist: could you please have a look?
Examples:...There are tests in the nightlies that are currently failing. Not sure these are due to the update of jsonschema to 3.0.1 (may be enforcing something that was not enforced before?)
@samuel.gaist: could you please have a look?
Examples:
https://gitlab.idiap.ch/beat/beat.nightlies/pipelines/29971Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/80`jsonschema` & `beat-devel` version conflicts2019-05-07T08:40:22ZJaden DIEFENBAUGH`jsonschema` & `beat-devel` version conflictsI might have figured out the CI issues...specifying the new `jsonschema` version requirement in `conda/meta.yaml` conflicts with `beat-devel`:
```
UnsatisfiableError: The following specifications were found to be in conflict:
- beat-de...I might have figured out the CI issues...specifying the new `jsonschema` version requirement in `conda/meta.yaml` conflicts with `beat-devel`:
```
UnsatisfiableError: The following specifications were found to be in conflict:
- beat-devel=2019.04.30 -> jsonschema==2.6.0=py36h006f8b5_0
- jsonschema[version='>=3.0.0']
```
Do we need to restrict `jsonschema` to 2.6.0 in beat-devel, or can we bump it to 3.x?André AnjosAndré Anjoshttps://gitlab.idiap.ch/beat/beat.core/-/issues/79Implement missing prototypes2019-05-07T10:47:47ZSamuel GAISTImplement missing prototypesSome assets currently don't have prototypes and therefor cannot be created from scratch.
This issue tracks the implementation for them.
Currently needed:
- [x] Database
- [x] Experiment
Note that experiment can't be created from scrat...Some assets currently don't have prototypes and therefor cannot be created from scratch.
This issue tracks the implementation for them.
Currently needed:
- [x] Database
- [x] Experiment
Note that experiment can't be created from scratch so this use case is unsupported and should properly triggers an exception.
An experiment is based on a toolchain. Therefor providing a "prototype" doesn't make sense as its content would depend on what is available in the prefix. Also the person getting that "prototype" would first have to clear everything before it can start configuring the experiment as they would like.Soft loopsSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/78Plotterparameter saving is not operational2019-05-06T13:35:08ZSamuel GAISTPlotterparameter saving is not operationalCurrently the implementation of the writing of a Plotterparameter can succeed.
The implementation is wrong and there are elements of the class that are missing.Currently the implementation of the writing of a Plotterparameter can succeed.
The implementation is wrong and there are elements of the class that are missing.Soft loopsSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/76Clean up the schemas2019-06-02T02:18:24ZJaden DIEFENBAUGHClean up the schemas(@samuel.gaist this is the issue for our email discussion)
Both !55 and !65 showed that there were places to improve the schema. This issue expands on those MRs' work by using the v6/v7 json schema features (where appropriate) and addin...(@samuel.gaist this is the issue for our email discussion)
Both !55 and !65 showed that there were places to improve the schema. This issue expands on those MRs' work by using the v6/v7 json schema features (where appropriate) and adding tests to complicated parts of the schema. Right now I know of a couple of things that need to be done:
- [x] Use the `const` schema keyword instead of the `enum` with only one choice. This issue is documented in the schema, e.g. in beat.core/beat/core/schema/algorithm/3.json:
```json
115- "type": {
116: "$comment": "Change enum to const when tools allow v6 json schema",
117- "type": "string",
118- "enum": ["loop_user"]
119- }
--
144- "type": {
145: "$comment": "Change enum to const when tools allow v6 json schema",
146- "type": "string",
147- "enum": ["loop"]
148- }
```
- [ ] Use the `if`/`then`/`else` keywords from json schema v7 to represent more complex logic (e.g. the changes to algorithm parameters in !65)
- As found in !65, there are parts of the schema that aren't tested thoroughly. This is nebulous issue, however, so @flavio.tarsetti @samuel.gaist could you maybe specify what I should do here, so I don't go off the rails?
(As other issues are isolated, I'll add them to the list)Jaden DIEFENBAUGHJaden DIEFENBAUGHhttps://gitlab.idiap.ch/beat/beat.core/-/issues/75Add BEAT classifier to setup.py2019-04-11T07:39:47ZSamuel GAISTAdd BEAT classifier to setup.pyThe classifier has been added to Pypi so it now can be used.
See beat/beat.backend.python#19The classifier has been added to Pypi so it now can be used.
See beat/beat.backend.python#19https://gitlab.idiap.ch/beat/beat.core/-/issues/74Update the schemas to better reflect parameter type support in different objects2020-10-19T15:16:45ZJaden DIEFENBAUGHUpdate the schemas to better reflect parameter type support in different objectsSee https://gitlab.idiap.ch/beat/beat.editor/issues/205#note_40301
The issue we found first is that the algorithm editor's parameter logic doesn't actually support complex types, but the algorithm schema indicates support. See the algor...See https://gitlab.idiap.ch/beat/beat.editor/issues/205#note_40301
The issue we found first is that the algorithm editor's parameter logic doesn't actually support complex types, but the algorithm schema indicates support. See the algorithm schema, `algorithm/common.json:80`:
```json
80 "parameter": {
81 "type": "object",
82 "properties": {
83 "type": { "$ref": "../common/1.json#/definitions/basetype" },
84 "default": { "$ref": "../common/1.json#/definitions/value" },
85 "description": { "type": "string" }
86 },
87 "required": [
88 "type"
89 ]
90 },
```
The `type` field references the `basetype` types, which includes complex types, but the editors (`beat.web` & `beat.editor`) don't actually support complex types for algorithm parameters.
I'll be looking through the other schemas and will update this issue with other things I find, if any.
EDIT: didn't find anything else in the other objects' schemas parameter definitionsJaden DIEFENBAUGHJaden DIEFENBAUGHhttps://gitlab.idiap.ch/beat/beat.core/-/issues/73simplejson VS python json2019-03-20T11:27:56ZSamuel GAISTsimplejson VS python jsonThere's currently a mix of use between the python official json module and simplejson.
One of the side effect seen is that the official json module handles less input types as simplejson until python 3.6.
This can be an issue when usin...There's currently a mix of use between the python official json module and simplejson.
One of the side effect seen is that the official json module handles less input types as simplejson until python 3.6.
This can be an issue when using the system provided Python 3 on Debian 9 which is currently 3.5
Example of such situation:
- Receiving data through the network -> bytes are returned in Python 3
- Loading data from disk using pkg_resources -> bytes are returned
From a backward compatible point of view, it would make more sense to use simplejson because of these use cases.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/72Assert usage cleanup2019-05-09T13:26:49ZSamuel GAISTAssert usage cleanupFollowing bandit warning about usage of assert in code, this issue is used to track down the cleanup of these statements found in beat.core.
Depending on how they are used, the following actions can be done:
1. Turn the statement into ...Following bandit warning about usage of assert in code, this issue is used to track down the cleanup of these statements found in beat.core.
Depending on how they are used, the following actions can be done:
1. Turn the statement into an exception
2. Handle the case gracefully
3. Mark as not to get worried about
The current state of the code base is usually 3 which should be cleaned up.
All tests in this repository have been cleaned to use the testing framework corresponding toolshttps://gitlab.idiap.ch/beat/beat.core/-/issues/71Algorithm prototype loading fails on python 3.52019-03-15T10:41:57ZSamuel GAISTAlgorithm prototype loading fails on python 3.5Issue similar to the one fixed by !58
`pkg_resources.resource_string` returns bytes and not str which the json module doesn't load on 3.5.
Issue found through beat/beat.web>Issue similar to the one fixed by !58
`pkg_resources.resource_string` returns bytes and not str which the json module doesn't load on 3.5.
Issue found through beat/beat.web>Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/70ZMQ architecture documentation2019-03-14T14:32:54ZSamuel GAISTZMQ architecture documentationThis issue is for tracking the documentation of the ZMQ architecture.This issue is for tracking the documentation of the ZMQ architecture.ZMQ resilience improvementSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/69Errors building with bob.devtools2019-02-28T07:39:40ZJaden DIEFENBAUGHErrors building with bob.devtoolsI need to build it to work on the plotterparameter schema but it didn't work. I ran
```
$ bdt build -vv . --python=3.6
```
The first errors are the following:
```
...
running install_egg_info
Copying beat.core.egg-info to $PREFIX/lib/pyt...I need to build it to work on the plotterparameter schema but it didn't work. I ran
```
$ bdt build -vv . --python=3.6
```
The first errors are the following:
```
...
running install_egg_info
Copying beat.core.egg-info to $PREFIX/lib/python3.6/site-packages/beat.core-1.8.0b0-py3.6.egg-info
File "/home/jae/miniconda3/conda-bld/beat.core_1551291776091/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac
ehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.6/site-packages/beat/core/test/prefix/databases/invalid/1.py", line 28
class View; # <-- syntax error!
^
SyntaxError: invalid syntax
File "/home/jae/miniconda3/conda-bld/beat.core_1551291776091/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_plac
ehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/lib/python3.6/site-packages/beat/core/test/prefix/algorithms/user/syntax_error/1.py"
, line 29
class Algorithm;
^
SyntaxError: invalid syntax
...
```
Hopefully these errors aren't blocking the build because those syntax errors are actually intentional! The build continues and gets conda `ClobberWarning`s:
```
...
ERROR:conda.stderr:
ClobberWarning: This transaction has incompatible packages due to a shared path.
packages: http://www.idiap.ch/software/bob/conda/label/beta::beat.backend.python-1.6.2b0-py36h3c37dc0_3, file:///home/jae/miniconda3/conda-bld::beat.core-0.0.1-py36h1c6dc61_0
path: 'lib/python3.6/site-packages/beat/__init__.py'
...
```
After that there's alot of errors and exceptions, so I'm attaching the [bdt build log](/uploads/872db60d37880e72435fbc1020201099/bdt_build.log) and my [bdt environment package list](/uploads/32b39df45c96ab133890e5f63944f0c6/bdt_env_list.log).
This is using a python 3.6 conda environment and specifying python 3.6 for building beat.core, but the same-ish thing happens using python 3.7.
Should I not be using bob.devtools to build beat.core yet, or am I missing something?https://gitlab.idiap.ch/beat/beat.core/-/issues/68Refactor ZMQ architecture2019-03-13T07:55:39ZSamuel GAISTRefactor ZMQ architectureThe current architecture works well but connection with the scheduler may get lost after a long period of network inactivity.
The task here is to refactor the architecture so that adding and removing node as well as crashing nodes gets ...The current architecture works well but connection with the scheduler may get lost after a long period of network inactivity.
The task here is to refactor the architecture so that adding and removing node as well as crashing nodes gets improved handling and thus avoids as much as possible "blocked" experiments.ZMQ resilience improvementSamuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/67Algorithm prototype default dataformat not available on platform installation2019-02-25T08:32:27ZSamuel GAISTAlgorithm prototype default dataformat not available on platform installationThe `integers` dataformat used as default type when loading the algorithm prototype is not available on a default installation of the BEAT platoform.The `integers` dataformat used as default type when loading the algorithm prototype is not available on a default installation of the BEAT platoform.Samuel GAISTSamuel GAISThttps://gitlab.idiap.ch/beat/beat.core/-/issues/66The plotterparameter type doesn't have a JSON schema file2019-04-18T22:25:57ZJaden DIEFENBAUGHThe plotterparameter type doesn't have a JSON schema fileNot sure what happened but we need one, right?
I found this out by working on https://gitlab.idiap.ch/beat/beat.editor/issues/161Not sure what happened but we need one, right?
I found this out by working on https://gitlab.idiap.ch/beat/beat.editor/issues/161Jaden DIEFENBAUGHJaden DIEFENBAUGHhttps://gitlab.idiap.ch/beat/beat.core/-/issues/65Updates to the algorithm schema2019-02-23T18:21:47ZJaden DIEFENBAUGHUpdates to the algorithm schemaSee the relevant [beat.editor MR](https://gitlab.idiap.ch/beat/beat.editor/merge_requests/46) for how this started.
The algorithm schema is not specific enough, and needs some changing if the JSON schema tech allows it:
- There should b...See the relevant [beat.editor MR](https://gitlab.idiap.ch/beat/beat.editor/merge_requests/46) for how this started.
The algorithm schema is not specific enough, and needs some changing if the JSON schema tech allows it:
- There should be at least 1 output in the algorithm
- Every group should have at least 1 input (otherwise it's an empty group and should be removed)
- Analyzers *maybe* should be required to have at least 1 result
I'm pretty sure they are all possible to encode in the JSON schema.https://gitlab.idiap.ch/beat/beat.core/-/issues/64Database schema and runtime improvements2021-01-29T09:46:59ZAndré AnjosDatabase schema and runtime improvementsDatabases were originally designed monolithically, assuming the environment where packages necessary to read their contents is fixed (and does not change), and the location of files to be used for the readout is fixed. As an after thoug...Databases were originally designed monolithically, assuming the environment where packages necessary to read their contents is fixed (and does not change), and the location of files to be used for the readout is fixed. As an after thought, templates were introduced without a proper formalisation and, as a consequence, templates with the same names may appear in various database JSON declarations, w/o necessarily being the same. This issue supersedes #25 and gathers all changes required for a revamp in this area:
- [x] Protocol and set templates should be separated from the database view declaration to avoid repetition and centralise "task-related" declarations. This will effectively simplify the declaration of new datasets
- [ ] The `root_db` parameter (maybe misspelled here) needs to be externalised as a runtime parameter during the run, as it is currently the case for other runtime prefixes such as algorithm caches. Currently, if one downloads the database view, they need to change this parameter by hand
- [x] The environment required to run the database view to provide the data for the experiment needs to be configured and have an entry on the database JSON declaration. This ensures that changes in the environment (docker image), will imply in new caches being generated at all times. As of today, it can happen that hashes are not regenerated even if the environment changes completely.
- [x] A default db env docker image (possibly named `beat.env.databases`) should be provided on docker hub. This avoids conflicts in future because when using multiple databases in one experiment, only one image can be used.
- [ ] The prototypes in `beat.core` should come configured to use this image.
- [ ] This new JSON entry must be documented in `beat/docs` and users should be recommended to use this image.Samuel GAISTSamuel GAIST