CHANGES
=======

* setuptools deprecated in new versions
* Fix update async access token
* bugfix
* limits max connections defaults to 10 or using env variable SOIL\_MAX\_CONNECTIONS
* Ensures \_upload\_modules runs correctly by using asyncio.run() if no event loop exists, or scheduling it as a task if an event loop is already running
* Ensures \_upload\_modules runs correctly by using asyncio.run() if no event loop exists, or scheduling it as a task if an event loop is already running
* Silenced pyright
* Small fixes
* Support for asyncio
* description field added to soil job and to create experiment
* python doesnt like literals
* genric compound storage
* typed compound storage
* removed total jobs from job
* refactored from scratch soil.job

0.6.34
------

* total jobs attribute in job\_group
* [MERGE]total jobs attribute in job\_group
* total jobs attribute in job\_group

0.6.33
------

* added trust for 2fa

0.6.32
------

* using generic data structure

0.6.31
------

* exported data structure and generic data
* datastructure better as generic for back

0.6.30
------

* modulify with param spec

0.6.29
------

* Job protocol with group\_created\_at attribute

0.6.28
------

* add group creation date in job schema
* show-states instead of with-states

0.6.27
------

* Added alias timeout
* soil.job Fixed pyright types
* Implementing non-blocking jobs
* Tests for complicated cases in pipelines
* Faster tests for soil-sdk

0.6.26
------

* Added optional extras in soil.alias
* Making pyright happy
* Removed docs

0.6.25
------

* bugfix for uploading roles

0.6.24
------

* added timeout to requests
* creates roles on soil alias if non existing

0.6.23
------

* bugfix overwriting session headers
* updated post body from json to data
* new create dictionary with content gzipped

0.6.22
------

* generic metadata changed implementation
* use py3.12 on build pypi

0.6.21
------

* updated major pbr, can fail build pypi
* updated dev deps
* updated pyscopg
* updated pandas supports py3.12
* updated numpy
* added ruff and solved some test errors on macos
* Added docker stop to CI

0.6.20
------

* transform\_query for postgres

0.6.19
------

* Removed print
* Added support for postgres

0.6.18
------

* overridable parameters on soil run

0.6.17
------

* Updated pre-commit
* Upload multiple modules at once

0.6.16
------

* removed comment line
* removed pyright dep
* only a single underscore bc of python
* added support for new type Timestamp in kwarg for modulify

0.6.15
------

* pyright things
* added return type to modulify and set\_file\_status function

0.6.14
------

* added change state if not processed

0.6.13
------

* block update on file if state already set

0.6.12
------

* re-estructured imports and added function to import

0.6.11
------

* changed location of sqlite db in test
* added handler of logs

0.6.10
------

* soil sdk resolved id colision

0.6.9
-----

* exported soil types and serializableDS protocol solved

0.6.8
-----

* Added artifact to CI
* updated readme

0.6.7
-----

* typeddict as generic
* changed dockerfile
* changed dockerfile
* deleted requirements and added inside setup cfg
* deleted some phases from CI
* added pylint and coverage
* changed runner for testing
* more type hint to annotations of soil.alias and created image of docker to make tests
* changed image for pyright testing
* added pyright to soil-sdk
* added protocols to generic ds
* disabled pylint error
* more upgrade to python3.11
* upgraded to python 3.11
* overloading soil.data
* overloaded soil.data call
* renamed genericds type var
* type hint modulify continue
* type hinted modulify

0.6.6
-----

* unused mocks
* omittable parentheses for modulify
* new modulify can take no args with annotation of decorated func

0.6.5
-----

* Upgraded dependencies

0.6.4
-----

* FIX \_\_init\_\_ should be removed from module\_name when uploading a module

0.6.3
-----

* FIX \_\_init\_\_ should be removed from module\_name when uploading a module

0.6.2
-----

* Refactored code sync. Now it uses hashes

0.6.1
-----

* Made SoilSession class private
* Fix: Tokens refresh when necessary using the session object
* Added tpyed marks

0.6.0
-----

* Disable mypy as there is a bug in version 0.971 https://github.com/python/mypy/issues/13627
* Set minimum python version to 3.10
* Fixing CI
* Set minimum python version to 3.10
* Set minimum python version to 3.10
* Set minimum python version to 3.10
* Set minimum python version to 3.10
* Set minimum python version to 3.10
* Imports from the same project don't have to start with soil. This is a BREAKING CHANGE

0.5.0
-----

* fixing issue with mypy
* Added retries when the server returns 5xx
* Fixing typo, updating readme
* Added black formatter
* Using a session for http requests
* Updated pre-commit
* Updated pylint
* Removed example app
* Removed soil configure and soil init
* Update docs/docs/tutorial/alerts.md
* Updated pre-commit requirements
* Upgraded docs, fixed CI
* Upgraded sdk docs
* Upgrading dependencies
* Documentation: Upgraded dependencies
* Documentation: Upgraded dependencies
* Documentation: Upgraded dependencies

0.4.0
-----

* Updated coverage
* alias except generalized to data except
* pylint and new experiment except
* only remaining pipeline exceptions
* configuration and decorator added
* DS done
* added data exceptions
* added dictionary exceptions

0.3.15
------

* Simplified requirements, cleaned unused code in soil\_cli, fixed ci
* Fixing dependencies
* Update readme
* Update readme

0.3.14
------

* Exit with code=1 when there are errors

0.3.13
------

* Fix api call get\_dictionaries

0.3.12
------

* Fix get\_dictionaries api call

0.3.11
------

* Fixed soil.dictionary (create)

0.3.10
------

* Update sample app

0.3.9
-----

* Fixed another bug with complex pipelines

0.3.8
-----

* Do not upload modules in test environment

0.3.7
-----

* Updated documentation
* Added compound storage
* Build with node alpine 16

0.3.5
-----

* Added data\_structure.export()
* Fixed bad concatenation when returning exception
* Fixed pyyaml version
* Update shared.txt

0.3.4
-----

* Merged with master
* Fix: Tokens not refreshing when called from api.py due to HEADERS being constant set at startup. Added fstrings
* Do not call get\_data if data\_structure.data is not called
* Fix: Bug when generating code. The function didn't contain () It was introduced when switching to fstrings

0.3.3
-----

* Update .vscode/settings.json
* Fix pre-commit pylint and mypy
* Fix pre-commit pylint
* Linter fixes
* Added test for create dictionary and updated git ignore and no venv
* Added test for create dictionary and updated git ignoe
* Added test for create
* Added get dictionaries

0.3.2
-----

* Update soil\_cli.py

0.3.1
-----

* Fix: When somebody has username but no email
* Added encoding to all open() calls as required in https://github.com/PyCQA/pylint/issues/3826
* When there is an error show in which file it happened
* When there is an error show in which file it happened

0.3.0
-----

* The sdk loads the soil.env file from the app folder if possible. Backwards compatible
* soil\_cli stores credentials in a folder ~/.soil/app\_id/ too. It is backwards compatible
* Cleaned soil\_cli code. Added some error messages
* Fixed bug that prevented to login if there was no env file
* It is not necessary to have username anymore. Email is enough
* Autorefreshing session token when needed
* Merged feat/FL

0.2.1
-----

* Fixed linters
* Fixed linters
* Update test\_data.py
* Update test\_alias.py
* Added with roles to get\_alias /states api.py
* Fixed tests and cleaned code
* Updated
* Updated documentation

0.2.0
-----

* Update alias to avoid calling unserialize
* Add new labels to modulify for FL
* Merged master

0.1.6
-----

* Updated docs: data-structures, data
* Updated documentation
* Storage classes

0.1.5
-----

* Allow to override soil.conf from the project
* Update api url
* Fix pipeline
* Add soil.alerts

0.1.4
-----

* Added placeholder soil install
* Revert FL
* FL - Draft to be continued

0.1.3
-----

* Fix: Lint fix no newline at end of file
* Add task\_wait

0.1.2
-----

* Added tests for function parameters
* Pass functions and decorated functions as parameters
* Change soil\_url documentation to show dev url
* Update get-started.mdx
* Fixed gitlab-ci
* Added library autogenerated documentation
* Updated documentation to docusaurus v2. Api reference autoupdates now

0.1.1
-----

* Added tests for example app
* Added Iris dataset example

0.1.0
-----

* Changed version to 0.1.0
* [Docs] Bumped version
* [Docs] Updated scripts and alias roles documentation
* [Docs] Changed links in get-started. Anaconda is no longer recomended
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Alias can have roles now roles
* Update template.zip automatically
* Added --user --password to soil login to login from the CI
* Update .gitlab-ci.yml

0.0.2
-----

* Fix modulify with the number of outputs. Added types for ES connector
* Update .gitlab-ci.yml
* Fix: Do not repeat experiment if the module has two outputs and both are aliased. Fix: No params soil run
* Fix modulify: it returned the wrong number of expected outputs in local modules. soil\_cli: nicer soil run
* Update dependencies
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Changed call for soil run
* Update .gitlab-ci.yml
* Update .gitlab-ci.yml
* Pass parameters to the program with soil run program --my-params
* Update docs/docs/tutorial/get-started.md
* Bump docu to v0.0.8
* Updated docs
* Fixed login bug
* Upadted documentation version
* Updated documentation on scripts
* Update get-started.md
* Implemented run command
* Update get-started.md
* Update get-started.md with more detailed configurations instructions
* Deleted type testing
* Fixed some typing/linting issues and skipped some others..
* Update .pre-commit-config.yaml to change python version to 3.8 to test testing with new anaconda image
* Completed migration to argparse with various improvements in the functions
* Started port to argparse and performed some improvements. Backup commit
* Removed app\_template temporarily to fix tests
* Implemented soil run. Included app\_template again
* Modified template
* Update .gitlab-ci.yml to make deploy:pypi manual
* Fixed tests
* Added example filtering even numbers
* Fixed API URLs to end in / to avoid 404 errors drom the server
* Updated deps
* Updated pre-commit.yml
* Fixed entry points and soil\_cli package name
* Added tests for alias
* Fix ci linter
* Added more tests for soil.data
* Added some tests for soil.data
* Added some tests for soil.data
* Docs v0.0.6
* Update gitlab ci
* Update gitlab ci
* Update gitlab ci
* Update ci file
* Automatic deploy pypi
* Fixed yaml
* Updated readme
* Modified config
* Fixed styles
* Fixed styles
* Merged soil-cli
* Added access to ES DB
* Improved code to be linting, security and typing compliant :)
* More lintern
* More linting
* More linting changes
* Some bandit fixes
* Documentation for accessing the DB
* Fixed some security vulnerabilities (injection by calling system commands), others reviewed, testing pip using subprocess
* Reading logs from the pipeline properly
* Added logging
* It is possible to send logs from inside a module
* Implemented init and install functionalities
* Login: Tokens are found in config files
* WIP
* Added soil.alias
* Updated documentation
* added soil.data
* Get the data and metadata of a result
* v0.0.2
* Added data-structures docs
* Added versions
* More docs
* More docs
* Test cd
* Update README.md
* Update README.md
* Cleaned page
* More docs
* Update .gitlab-ci.yml
* Modified main page
* Added docusaurus
* SDK can run simple programs
* First commit. Implemented commands: configure, init and login
* Fix linter error only in the CI
* Allow subpackages for modules and data\_structures
* Added logger and some auto docs (not finished)
* Added ci file
* Changed requirements
* Removed html cov files
* Removed html cov files
* Added linting, testing, types and coverage
* added soil.data()
* Updated .gitignore
* Implemented finder
* Updated README
* Design aliases
* Updated README
* Initial commit
